ich habe folgende Herausforderung: In mehreren Blättern einer Datei ändern sich die Werte entsprechend des gewählten Monats. Bisher habe ich dies über eine Dropdown-Liste in einem Eingabeblatt gesteuert. Nun möchte ich gerne die Möglichkeit haben, diese Monatsauswahl in jedem Blatt separat treffen zu können. Also jedes Blatt hat dann eine eigene Dropdownliste. Allerdings besteht die Schwierigkeit für mich nun darin, dass die Änderung auf einem beliebigen Blatt auch alle Monatswerte in den anderen Blättern automatisch ändern soll. Bisher habe ich hierzu noch keine Lösung gefunden.
Hallöchen, ich weiß jetzt noch nicht, was eine Beispieltabelle bringen soll. Es gibt erst mal etwas Theorie zu klären und dann reicht bestimmt auch die Angabe der Zelle(n), wo das passieren soll. Ich gehe davon aus, dass das nur per Makro geht. Wenn Du z.B. 5 Blätter hast, auf jedem ein Dropdown, dann gehen die immer auf das jeweilige Blatt. um die Auswahl von einem Blatt auf die anderen zu transportieren, müssten in den Zellen Formeln stehen, z.B. in den Tabellen 2 bis 4 =Tabelle1!A1 In Tabelle1!A1 hast Du keine Formel, denn das ergäbe ja einen Zirkelbezug. Du kannst nun allerdings auch nur das Dropdown in Tabelle1 benutzen. Würdest Du das ioch nichtn Tablle2 benutzen, wäre dort die Formel weg. Eine Formellösung kommt also nicht in Frage.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
unter DieseArbeitsmappe findest Du folgende Ereignismöglichkeit:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Damit wird auf Änderungen in allen Blättern der Mappe reagiert. Du erstellst auf Deinen Blättern die Auswahlfelder und reagierst mit dem Makro auf die Änderung - fügst die Auswahl auf allen Blättern ein. Mit dem Target kannst Du vergleichen, welche Zelle geändert wurde. Das sh benötigst Du, falls noch andere Blätter in der Datei sind, die nicht geändert werden sollen. Damit das Makro sich nicht totläuft, müsstest Du noch die Events abschalten und am Ende wieder ein.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
sorry, dass ich erst jetzt antworte. Auf jeden Fall mal vielen Dank für Deine Antwort und Deine Bemühung!
Leider bin ich kein Makro/VBA-Experte und bin mit der Umsetzung Deines Vorschlags noch nicht wirklich weitergekommen. Die Ereignismöglichkeit habe ich zwar gefunden, aber meine Versuche (auch nach Lesen weiterer Anweisungen zu diesem Befehl) endeten erfolglos. Kannst Du mir bei der korrekten Syntax für diesen Befehl noch mal helfen?
der Code würde dann so aussehen und gehört in das Modul DieseArbeitsmappe. Warst Du schon mal im VBA-Editor?
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'Variablendeklarationen 'Tabellenblatt Dim wsBlaetter As Worksheet 'Variant Dim vTarget 'Wenn die Adresse der geänderten Zelle A1 ist, dann If Target.Address = "$A$1" Then 'Ereignisse ausschalten Application.EnableEvents = False 'Zellinhalt uebernehmen vTarget = Target.Value 'Schleife ueber alle Tabellenblaetter For Each wsBlaetter In ActiveWorkbook.Worksheets 'Zellinhalt in A1 des Tabellenblattes uebertragen wsBlaetter.Cells(1, 1) = vTarget 'Ende Schleife ueber alle Tabellenblaetter Next 'Ereignisse einschalten Application.EnableEvents = True 'Ende Wenn die Adresse der geänderten Zelle A1 ist, dann End If End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
herzlichen Dank für Deine Unterstützung! Funktioniert - mit einem kleinen Schönheitsfehler, denn die Änderung der Dropdown-Auswahl wird erst dann auf den anderen Blättern wirksam, wenn ich die Zelle verlasse und dann wieder aktiviere. Wenn ich sofort nach der Auswahl auf ein anderes Blatt springe ist die Änderung noch nicht wirksam. Ich habe meine Beispieldatei angehängt. Vielleicht gibt es hierfür ja auch noch eine Lösung - wäre super.
da war jetzt aber kein Code drin .... Daher kann ich nicht sagen, ob da bei Dir eventuell ein Fehler drin war. Wenn ich den Code in die Mappe einfüge und den Target in "$C$3" ändere und Cells(3, 3) einsetze, klappt es bei mir.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)