Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary

Forumthread: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary

Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 15:50:53
Peter Gebhardt
Guten Tag
Ich möchte für ein Projekt abhängige Dropdowns erstellen. Im ersten Feld der Hersteller, im zweiten das Modell.
Hat auch geklappt aber jetzt komme ich nicht mehr weiter: Ich möchte den Hersteller in ein dictonary einlesen damit er im Dropdown Feld nur einmal erscheint.
Allerdings wird der Hersteller anscheinend nicht eingelesen. Wer kann mir helfen und den Fehler finden?
Bitte auch um kurze Mitteilung wa sich falsch gemacht habe - ich möchte mein Wissen erweitern und nicht nur Lösungen kopieren.
Vielen Dank!

https://www.herber.de/bbs/user/174474.xlsm
Anzeige
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 16:05:36
Onur
oDic(Cell.Value) = 0

lädt JEDEN Wert in die Dictionary, du willst aber keine Duplikate - also:


If NOT oDic.Exists(Cell.Value) Then oDic(Cell.Value) = 0
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 16:28:09
Uduuh
Hallo,
du weist ja dem Hersteller einfach den Bereich zu.
Private Sub UserForm_Initialize()


Dim oDicN As Object, oDicH As Object
Set oDicN = CreateObject("Scripting.dictionary")
Set oDicH = CreateObject("Scripting.dictionary")
Dim Cell As Range

'Schleife über kompletten Zellbereich

For Each Cell In Tabelle1.Range("Tabelle1[Hersteller]")

'Zellwert in Dictionary einlesen

oDicH(Cell.Value) = 0
oDicN(Cell.Offset(, 1).Value) = 0

Next Cell

'combobox mit dictionary befüllen
CBName.List = oDicN.keys

ComboBox1.List = oDicH.keys


End Sub

Gruß aus'm Pott
Udo
Anzeige
Nun mit Dictionary
22.12.2024 19:53:48
snb
Mit Dictionary

Dim dic As Object


Private Sub UserForm_Initialize()
sn = Tabelle1.ListObjects(1).DataBodyRange
Set dic = CreateObject("scripting.dictionary")
With dic
For j = 1 To UBound(sn)
.Item(sn(j, 1)) = .Item(sn(j, 1)) & "_" & sn(j, 2)
Next
ComboBox1.List = .keys
End With
End Sub

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then ComboBox2.List = Split(dic(Mid(ComboBox1.Value, 2)), "_")
End Sub


Mehr Info: https://www.snb-vba.eu/VBA_Dictionary_en.html
Anzeige
Ohne Dictionary oder Pivottable
23.12.2024 11:18:58
snb
Dim c01

Private Sub UserForm_Initialize()

sn = Tabelle1.ListObjects(1).DataBodyRange

For j = 1 To UBound(sn)
If InStr(c00 & "_", "_" & sn(j, 1) & "_") = 0 Then c00 = c00 & "_" & sn(j, 1)
c01 = c01 & vbLf & sn(j, 1) & sn(j, 2)
Next

ComboBox1.List = Split(Mid(c00, 2), "_")
End Sub

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then ComboBox2.List = Split(Replace(Join(Filter(Split(c01, vbLf), ComboBox1), vbLf), ComboBox1, ""), vbLf)
End Sub
Anzeige
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 16:12:17
Uduuh
Hallo,
die Prüfung auf Exists ist nicht nötig, da Einträge im Dictionary eindeutig sind.

Gruß aus'm Pott
Udo
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 16:21:51
Peter Gebhardt
Hallo - jetzt bin ich etwas überfordert - was soll ich den machen?
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 16:37:55
Onur
Hi Udo,
Hast Recht, es war Blödsinn.
Gruß
Onur
Anzeige
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 17:02:01
Uduuh
So krass wollte ich es nicht sagen
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 16:35:12
Onur
Du hast ja gar keine Dictionary für Hersteller - nur für "Name".
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
22.12.2024 16:20:40
Peter Gebhardt
Hallo - habe ich geändert - funktioniert aber bei mir nicht - die Hersteller kommen immer noch mehrfach?
Anzeige
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
23.12.2024 10:30:25
Peter Gebhardt
Vielen Dank nochmal - die Lösung würde auch gehen - aber ich binde das in ein Kundenblatt mit Anschrift und Reparaturauftrag ein - da steht noch eine Datenbankabfrage und mehre Datenfelder dahinter.
Anzeige
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
23.12.2024 10:43:47
Alwin Weisangler
Hallo,

und dann so?


Option Explicit

Private Sub UserForm_Initialize()
Dim oDic As Object, Cell As Range
Set oDic = CreateObject("Scripting.dictionary")
For Each Cell In Tabelle1.Range("Tabelle1[Hersteller]")
oDic(Cell.Value) = 0
Next Cell
ComboBox1.List = oDic.keys
Set oDic = Nothing
End Sub

Private Sub ComboBox1_Change()
Dim oDic As Object, Cell As Range
Set oDic = CreateObject("Scripting.dictionary")
If ComboBox1.ListIndex = -1 Then
CBName.Enabled = False
Else
CBName.Enabled = True
End If
For Each Cell In Tabelle1.Range("Tabelle1[Modell]")
If Cell.Offset(, -1) = ComboBox1 Then oDic(Cell.Value) = 0
Next Cell
CBName.List = oDic.keys
Set oDic = Nothing
End Sub


Gruß Uwe
Anzeige
AW: Abhängige Dropdowns - hier Fehler im Schreiben ins dictonary
23.12.2024 10:59:12
snb
Es gibt mehr als 16000 Spalten ......
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18