Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
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

ComboBox in Abhängigkeit füllen

ComboBox in Abhängigkeit füllen
01.06.2018 14:58:08
Tim
Hallo, ich habe eine Combobox die ich via Rowsource einlese, darin enthalten sind PLZ. Nun möchte ich in einer weiteren Combobox die dazugehörigen Straßen aus einer Datenbank einlesen, daran scheitere ich.
Das Tabellenblatt "Datenbank" hat in Spalte "A" die PLZ, die auch mehrfach vorkommen kann und in Spalte "B" Straßennamen die auch mehrfach vorkommen können. Das Makro soll beide Werte nur einmal zulassen und auch nur die Straßen ausgeben, die zur eingegeben PLZ in der Datenbank gepflegt sind.
Wie kann ich das lösen?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox in Abhängigkeit füllen
01.06.2018 17:07:41
Peter(silie)
Hallo,
so bekommst du die Plz eindeutig + eindeutige straßen:
(Alles weitere musst du selber machen)
Hier Beispiel Mappe: https://www.herber.de/bbs/user/121929.xlsm
Hier Code:
Option Explicit
Public Sub test()
Dim plzAndStreet    As Object
Dim ws              As Worksheet
Dim varKey          As Variant
Set ws = ThisWorkbook.Sheets("Datenbank")
Set plzAndStreet = GetPostalAndStreets(ws)
For Each varKey In plzAndStreet.Keys
Debug.Print varKey & " ---> " & plzAndStreet(varKey)
Next varKey
End Sub
Private Function GetPostalAndStreets(ByRef shTarget As Worksheet) As Object
Dim dict    As Object
Dim lastRow As Long
Dim i       As Long
Dim cellV   As Variant
If shTarget Is Nothing Then Exit Function
Set dict = CreateObject("Scripting.Dictionary")
With shTarget
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
cellV = .Cells(i, 1).Value
If Not dict.Exists(cellV) Then
dict.Add cellV, .Cells(i, 2).Value
Else
Dim tmp As String
tmp = dict(cellV)
If InStr(1, tmp, .Cells(i, 2).Value, vbTextCompare) 

Anzeige
AW: ComboBox in Abhängigkeit füllen
01.06.2018 17:12:34
fcs
Hallo Tim,
sind die Comboboxen in einem Userform oder auf einem Tabellenblatt plaziert?
Mit RowSource kannst du hier nicht arbeiten.
Du musst mit der AddItem-Methode arbeiten und dabei in einer Schleife alle Doppelten überspringen.
Oder erst alle nicht doppelten Einträge in einem Datenarray sammeln und dann die List-Eigenschaft.
Bei der Liste der Strassennamen in der 2. Box wird es komplizierter.
Hier muss man die Aktualisierung des Auswahlliste mit dem Change-Ereignis der Combobox mit der PLZ-Auswahl starten. Dabei müssen dann PLZ auf Übereinstimmung geprüft werden und die Strassennamen auf doppelt.
Ideal wäre wenn du eine Beispiel-Datei mit dem hochladen würdest was du hast.
Im Blatt "Datenbank" müssen dann aber nur wenige Zeilen vorhanden sein, so dass doppelte PLZ als auch doppelte PLZ+Strassenname vorkommen.
Bei intensiverer Suche unter "RECHERCHE" hier im Forum findest du sicher auch Beispiele für die Lösung deines Problems.
Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige