Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
316to320
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
316to320
316to320
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ereignismakro funktioniert nicht bei Zelländerung

Ereignismakro funktioniert nicht bei Zelländerung
05.10.2003 10:48:01
Fritz
Hallo VBA-Experten,
ich habe in einer Mappe in mehreren Tabellen als Tabellenmodul folgendes Makro eingetragen. Danach richten sich die Tabellennamen der betroffenen Tabellen nach dem Eintrag in der Zelle A1. Soweit funktionierte das bisher auch wunderbar. Ich habe nun allerdings in diesen Tabellen in A1 eine Formel eingegeben, wonach sich der Zellinhalt nach dem Eintrag in einer Liste (also jeweils nach dem Wert in einer anderen Zelle) richtet. Ändert sich nun der Eintrag in dieser Zelle, ändert sich zwar sofort auch jeweils der Wert in Zelle A1, der Blattname aber nicht. Woran liegt das? Und weiß einer von euch wie sich das entsprechend meinen Vorstellungen ändern lässt?
Danke bereits an dieser Stelle.
Gruß
Fritz

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ereignismakro
05.10.2003 10:52:14
Fritz
Hallo miteinander,

ich habe in der Schnelle das Makro nicht mit angegeben und möchte das hier nachholen:


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Range("A1").Value <> "" Then ActiveSheet.Name = Range("A1").Value
End Sub


Gruß
Fritz
AW: Ereignismakro
05.10.2003 11:00:28
Beni
Hallo Fritz,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
und A1 kurz selektionieren.
Gruss Beni
AW: Ereignismakro
05.10.2003 12:04:10
Fritz
Hallo Beni,
zunächst danke für Deine Hilfe und dafür, dass Du mir helfen willst.
Meine Kenntnisse in VBA sind so dürftig. Deshalb bitte ich, dass Du mir die Vorgehensweise noch etwas konkreter beschreiben musst.
Gruß
Fritz
Anzeige
AW: Ereignismakro
05.10.2003 11:16:06
Matthias G
Hallo Fritz,
für diesen Fall brauchst du das Calculate-Ereignis:

Private Sub Worksheet_Calculate()
If Range("A1").Value <> "" Then ActiveSheet.Name = Range("A1").Value
End Sub

Gruß,
Matthias
AW: Ereignismakro
05.10.2003 11:59:26
Fritz
Hallo Matthias,

dein Lösungsvorschlag hat bei mir nicht zu dem gewünschten Ergebnis geführt.
Ich glaube aber, dass meine Informationen unzureichend waren.

Deshalb etwas ausführlicher:
Die Tabellennamen einzelner Tabellenblätter einer Mappe enthalten jeweils in Zelle A1 einen Wert. Diese Tabelle soll genau diesen Wert als Tabellenname führen und diesen entsprechend verändern, wenn sich der Eintrag in A1 ändert. Nur dass sich eben dieser Eintrag, nicht durch eine Eingabe direkt in A1 ändert, weil eine Formel in A1 den Zellinhalt aus einer Zelle aus einem anderen Tabellenblatt ausliest.

Beispiel: A1 in einem Tabellenblatt enthält die folgende Formel: =Daten!A4). Steht aktuell im Blatt Daten in A4 der Eintrag "Müller", steht auch in A1 in dem anderen Tabellenblatt "Müller" und deshalb heißt diese Tabelle auch momentan Müller. Wird jetzt im Blatt "Daten" in A4 Müller in Maier abgeändert, ändert sich im Blatt Müller in A1 der Eintrag Müller zwar in Maier, aber der Tabellenname ändert sich nicht. Und genau das will ich eigentlich erreichen. Die bisherige Tabelle "Müller" sollte jetzt (automatisch in "Maier" umbenannt werden.

Wie kann ich das erreichen.
Nochmals vielen Dank für jeden Hinweis bzw. jede Hilfe.

Gruß
Fritz
Anzeige
AW: Ereignismakro
05.10.2003 12:13:33
Matthias G
Hallo Fritz,
wenn der Bezug auch von einem anderen Blatt kommen kann, dann folgendes:

Private Sub Worksheet_Calculate()
Name = Range("A1").Value
End Sub

Die Abfrage, ob die Zelle leer ist, ist bei Bezügen nicht nötig, es sei denn du hast "Nullwerte anzeigen" deaktiviert.
Gruß,
Matthias
AW: Ereignismakro
05.10.2003 12:26:01
Fritz
Hallo Mathias,
kurze Rückmeldung: Jetzt funktioniert die Sache, wie gewünscht.
Vielen Dank für Deine Hilfe.
Gruß
Fritz
AW: Danke für die Rückmeldung! - o.T.
05.10.2003 12:30:37
Matthias G
-
AW: Ereignismakro
05.10.2003 12:31:07
Beni
Hallo Fritz,
kopiere diesen Code in das Tabellenmodul von der Tabelle "Daten" und passe "Sheets(1).Name" entsprechend an, weil sich der Tabellenname ändert, muss hier die TabellenNr stehen und nicht der Tabellenname, wenn Du in Tabelle "Daten!A4" den Wert änderst, ändert sich auch der Tabellenname.
Gruss Beni


Private Sub Worksheet_Change(ByVal Target As Range)
' 05.10.2003 von Bernhard Mächler
If Target.Row = 4 And Target.Column = 1 Then
Sheets(1).Name = Range("A4")
End If
End Sub

Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige