Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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
Inhaltsverzeichnis

Excel: Synchronisieren von DropDown Listen

Excel: Synchronisieren von DropDown Listen
04.11.2019 09:13:26
DropDown
Hallo zusammen,
gibt es eine Möglichkeit, ein DropDown-Gültigkeit aus Tabelle1, mit der Dropdown-Gültigkeit in Tabelle2, derart zu synchronisieren, dass wenn ich in Tabelle1 im Dropdown den ersten Listeneintrag auswähle, dass in Tabelle2 der gleiche Listeneintrag eingestellt wird? Das gleiche soll passieren in Tabelle1 passieren, wenn ich in Tabelle2 einen Listeneintrag auswähle. DIe Zellen sollen sich also identisch verhalten und miteinander verknüpft sein.
In einem alten Thread hier habe ich für ein ähnliches Problem den hier zitierten Lö _ sungsvorschlag gefunden. Da ich bisher aber nicht mit VBA gearbeitet habe, bin ich nicht sicher wie ich diesen Lösungsweg implementiere. Ich arbeite mit Excel 2019.

"wenn deine Dropdowns jeweils in A1 sind:
in das Klassenmodul von Tab.1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then Sheets("Tabelle2").Range("A1") = Target
End Sub" 

Für Hinweise und Erläuterungen wäre ich dankbar.
Vielen Dank im voraus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 09:19:36
DropDown
Hallo,
Rechtsklick auf den Tabellenreiter von Tabelle1. In das sich öffnende Codefenster das Makro einfügen.
Gruß
Nepumuk
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 09:51:03
DropDown
Danke!
Das hat schon mal funktioniert. Es stellen sich für mich zwei weitere Fragen
1. Bisher ist die Synchronisation nur in eine Richtung:
Ich ändere in Tabelle1 ---> automatische Anpassung in Tabelle2
Ich ändere in Tabelle2 ---> nichts passiert.
Edit: Durch Eingabe des gleichen Codes (Nur Tabelle2 wird durch Tabelle1 ersetzt)für Tabelle2 konnte ich das Problem lösen. Ist das eine schlaue Methode? Oder kommt mir das irgendwann in die Quere?
2. Ich habe vor diese "Synchronisation" für ca. 150 DropDowns einzurichten. Lässt sich die Synchronisation mehrerer Zellen in einem Makro zusammenfassen? Also Wenn ich jetzt quasi Zelle A2 auch noch synchronisieren wollen würde, wie sähe das aus?
Einfach so ergänzen?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then Sheets("Tabelle2").Range("A1") = Target
If Target.Address(0, 0) = "A2" Then Sheets("Tabelle2").Range("A2") = Target
End Sub"

Danke für die schnelle Hilfe!
Anzeige
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 09:59:06
DropDown
Hallo,
würde ich so machen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRange As Range, objCell As Range
Set objRange = Intersect(Target, Range("A1:A100")) 'Bereich anpassen !!!
If Not objRange Is Nothing Then
Application.EnableEvents = False
For Each objCell In objRange
Worksheets("Tabelle2").Range(objCell.Address).Value = objCell.Value
Next
Application.EnableEvents = True
Set objRange = Nothing
End If
End Sub

Gruß
Nepumuk
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 10:04:45
DropDown
Hallo Nepumuk,
danke für die Hilfe. Der Code ist für mich als Laie leider nicht ganz nachvollziehbar, sodass ich befürchte mit der Anwendung überfordert zu sein. Da die Dropdowns nicht nebeneinander liegen ist aber in jedem Fall die Anwendung über einen "Bereich" nur bedingt möglich. Spricht etwas gegen die Variante mit mehreren Zeilen "If Target.Adress..."?
@Werner: Danke auch für deine Hilfe. Den von dir vorgeschlagenen Code bekomme ich leider nicht zum laufen. Wofür dient denn die Event abfrage? Mit dem ursprünglichen Code aus meinem Eingangspost habe ich es Dank der Hilfe hier jetzt hinbekommen mit der zwei-wege-synchro (Code einfach in beide Tabellenblätter mit entpsrechender Anpassung)
Anzeige
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 10:08:49
DropDown
Hallo,
über welchen Bereich mit deinen DropDowns reden wir denn?
Gruß
Nepumuk
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 10:15:02
DropDown
In der Anwendung geht es um Dropdown-Listen aus Tabelle2 welche übersichtlich/auszugsweise in Tabelle1 dargestellt werden sollen. Das soll die einfache Auswahl der maßgeblichen Dinge in Tabelle1 erlauben und verhindern, dass mit der unübersichtlichen und großen Tabelle2 gearbeitet werden muss.
Die Dropdown Menüs aus Tabelle2 im Bereich I8:O8
sollen synchron in Tabelle 1 im Bereich F9:K9 auftauchen
Die Dropdown Menüs aus Tabelle 2 im Bereich I38:O38
sollen synchron in Tabelle 1 im Bereich F10:K10 auftauchen
.... und 20 weitere Fälle
Anzeige
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 10:27:04
DropDown
Hallo,
dann so:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRange As Range, objCell As Range
Set objRange = Intersect(Target, Range("I8:O8"))
If Not objRange Is Nothing Then
For Each objCell In objRange
With objCell
Worksheets("Tabelle2").Cells(9, .Column - 3).Value = .Value
End With
Next
End If
Set objRange = Intersect(Target, Range("I38:O38"))
If Not objRange Is Nothing Then
For Each objCell In objRange
With objCell
Worksheets("Tabelle2").Cells(10, .Column - 3).Value = .Value
End With
Next
End If
Set objRange = Nothing
End Sub

Das Erweitern des Codes überlasse ich dir.
Gruß
Nepumuk
Anzeige
AW: Excel: Synchronisieren von DropDown Listen
04.11.2019 09:39:43
DropDown
Hallo,
wenn das in beide Richtungen funktionieren soll, dann müssen aber zwingend die Events ab und wieder angeschaltet werden.
Code für Tabellenblatt1:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Application.EnableEvents = False
Worksheets("Tabelle2").Range("A1") = Target
Application.EnableEvents = True
End If
End Sub
Code für Tabellenblatt2:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Application.EnableEvents = False
Worksheets("Tabelle1").Range("A1") = Target
Application.EnableEvents = True
End If
End Sub
Wie du ins Codemodul des jeweiligen Blattes kommts hat dir Nepumuk ja schon gezeigt.
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige