Auswahl änderbar in allen & für alle Blätter
#1
Guten Abend,

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.

Wäre super, wenn mir jemand helfen könnte.

Vielen Dank!


Stefan
Antwortento top
#2
Hallo,

könnte über NAMEN funktionieren. Dazu wäre aber eine (ggf. anonymisierte) Beispieldatei, mit IST und SOLL Zustand, hilfreich! ;-)
VG
von René und seinen 3 Gehirnzellen

Antwortento top
#3
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-2016)
Antwortento top
#4
Hallo,

erst mal vielen Dank für Eure Antworten. Also wenn es nur über ein Makro geht, dann hieße die Anforderung wohl wie folgt:

WIRD die Auswahl im Dropdown im aktuellem Blatt geändert, DANN in allen anderen Blättern auch diese Auswahl im jeweiligen Dropdown vornehmen.

Nun meine Fragen hierzu:

1. Muss ich dieses Makro für jedes Blatt schreiben?
2. Wie muss der VBA-Code lauten?

Viele Grüße

Stefan
Antwortento top
#5
Hallo Stefan,

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-2016)
Antwortento top
#6
Hallo Andre,

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?

Vielen Dank im Voraus.


Stefan
Antwortento top
#7
Hallo Stefan,

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-2016)
Antwortento top
#8
Hallo Andre,

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.

Viele Grüße


Stefan


Angehängte Dateien
.xlsm   Dropdown_alle-Blätter-wirksam.xlsm (Größe: 29,51 KB / Downloads: 3)
Antwortento top
#9
Hallöchen,

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-2016)
Antwortento top
#10
Hallo,

hier nochmal die Datei im Anhang.

Vorab vielen Dank!


Stefan


Angehängte Dateien
.xlsm   Dropdown_alle-Blätter-wirksam.xlsm (Größe: 29,93 KB / Downloads: 3)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste