Makro bei Excel automatisch bei Änderungen ausführen. Wie geht das?

... komplette Frage anzeigen

3 Antworten

Ich beziehe mich jetzt mal auf:

Jetzt möchte ich aber, dass gleich, wenn ich einen anderen Namen in C3
eingebe bzw. belegen lasse, sich der Name der RK ändert. Ohne eigens das
Makro manuell auszuführen.

Rechstklick auf die Registerkarte/ Code anzeigen...
Damit kommst Du in das Modul des Tabellenblatts (der Registerkarte).
Dort:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3")) Is Nothing Then
ActiveSheet.Name = Range("C3").Value
End If
End Sub

Hilft Dir das?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von schmiddi1967
14.10.2016, 21:51

Das geht auch kürzer ;))

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then ActiveSheet.Name = Target.Value
End Sub

Wichtiger ist ja was er mit dem anderen meint.

2
Kommentar von Oubyi
24.10.2016, 23:06

Danke fürs

0

Oubyi und Schmiddi haben konkrete Lösungsmöglichkeiten beschrieben, die genau die Anforderung umsetzen. Andere Ideen habe ich auch nicht, ich hab mir nur die Frage stellt, was Du genau mit dem ständigen Umbenennen der Tabellenblätter umsetzen willst. Das klingt irgendwie nach viel Makro für wenig Änderung. Vielleicht kann man das Ziel der Umbenennung auf andere Weise auch erreichen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von harrywepper
14.10.2016, 22:54

Vielen Dank erst einmal, euch Dreien.

Ich werde mal konkret:

Es gibt ein Datenblatt mit Namen von ca. 30 Schülern. Nennen wir es "Schüler".

Dann gibt es 30 Datenblätter, zu jedem natürlich Schüler eines, auf denen deren Kompetenzen dargestellt werden. Diese Datenblätter sollen unten jeweils den Namen des Schülers anzeigen.

Ich hatte vor, auf dem Datenblatt "Adams" (des ersten Schülers) die Zelle C3 mit der Zelle A1 von "Schüler" zu belegen. Das zweite Datenblatt "Becker" hat in C3 eine Verbindung von Schüler A2 zu verbinden.

Wenn ich jetzt in "Schüler" die Namen ändere (um eine andere Klasse zu bearbeiten), sollen auch gleich die Namen der einzelnen Datenblättern geändert werden.

Mit den Makros, die ihr mir aufgeschrieben habt, geht das nur auf direktem Wege, leider nicht in Verbindung mit dem Umweg "Schüler".

Oder soll ich im Makro direkt die Tabelle Schüler mit der jeweiligen Zelle ansprechen? Geht das überhaupt? Und jedes Makro wird dann einmalig beim Erstellen der jeweiligen Schülerseite geändert.

Das ist der Sinn meines Anliegens!

0

Soll das jetzt bedeuten das deine Änderung in (zb.Tabelle1) C3 immer alle anderen Tabellenblätter 2-30 auch so nennen soll wie Tabelle1 C3?

Das wird wenn du das so willst nicht gehen, Ecxel erstellt keine gleichnamigen Tabellenblätter. Wenn überhaupt nur mit einer Zahl hinten dran.

Laut deinem Beispiel jetzt Willy bis Willy29.

Dazu müsste man aber dein Makro kennen (weil nachbauen habe ich jetzt keine Lust zu :)))

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von schmiddi1967
14.10.2016, 22:04

Also als Ansatz könnte man folgendes Makro nehmen

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then ActiveSheet.Name = Target.Value
If Target.Address = "$C$3" Then Tabelle2.Name = Target.Value & "1"
If Target.Address = "$C$3" Then Tabelle3.Name = Target.Value & "2"
If Target.Address = "$C$3" Then Tabelle4.Name = Target.Value & "3"
End Sub

usw.

Da passiert jetzt das: Wenn du auf Tabellenblatt1 in C3 den Namen änderst (zb. Müller), werden in Tabellenblatt 2 - 4 automatisch die Namen Müller1, Müller2, Müller3 genommen.

Kannst du damit was Anfangen?

1
Kommentar von schmiddi1967
14.10.2016, 23:36

Du musst bitte direkt auf die einzelnen Antworten reagieren, weil sonst bekommt es keiner mit und so bin ich nur aus Zufall wieder auf diese Frage zurückgekommen.

Also du möchtest im Tabellenblatt "Schüler" die Namen eintragen (Wo in welchem Bereich) und dann, dass das Makro automatisch diese 30 Namen in 30 vorhandene Tabellenblätter einbindet
(diese umbenennt)?

Was machst du denn wenn die Klasse nur 29 Schüler
hast, sollen dann auch nur 29 umbenannt werden und das 30 te
ausgeblendet werden.

Also wo stehen genau die Namen und was soll passieren wenn es jetzt weniger oder mehr als 30 Schüler sind?

0

Was möchtest Du wissen?