4 Spaltige Cbo mit dictonary füllen

Moderator: ModerationP

4 Spaltige Cbo mit dictonary füllen

Beitragvon dieanne » 02. Dez 2020, 11:00

Hallo,
ich habe folgenden code zum befüllen eines cbo mit 2 Spalten gefunden, funktioniert auch gut.
Code: Alles auswählen
Dim hsh As Object, i As Long
Dim myliste
   
    Set hsh = CreateObject("Scripting.Dictionary")
    With Sheets(1)
        For i = 5 To .Cells(.Rows.Count, 1).End(xlUp).Row
            hsh(.Cells(i, 1).Text) = .Cells(i, 4).Text
        Next
    End With
   
    ReDim myliste(0 To hsh.Count, 1 To 2)

    For i = 0 To hsh.Count - 1
        myliste(i, 1) = hsh.keys()(i)
        myliste(i, 2) = hsh.items()(i)
    Next

    Me.ComboBox_Auftragsnummer.List = myliste

Kann man dieses code umschreiben das er auch 4 spalten befüllt?
Vielen dank für eure Hilfe

LG ANNE
dieanne
 

Re: 4 Spaltige Cbo mit dictonary füllen

Beitragvon snb » 02. Dez 2020, 11:04

Wofür brauchst du ein Dictionary ?

Schau mal: https://www.snb-vba.eu/VBA_Fill_combobo ... ox_en.html
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8188
Registriert: 25. Sep 2014, 16:37

Re: 4 Spaltige Cbo mit dictonary füllen

Beitragvon slowboarder » 02. Dez 2020, 11:10

Hi
so vielleicht (ungetestet)

Code: Alles auswählen
Dim hsh As Object, i As Long
Dim myliste
   
    Set hsh = CreateObject("Scripting.Dictionary")
    With Sheets(1)
        For i = 5 To .Cells(.Rows.Count, 1).End(xlUp).Row
            hsh(.Cells(i, 1).Text) = Array(.Cells(i, 4).Text, .Cells(i, 6).Text, .Cells(i, 8).Text)
        Next
    End With
   
    ReDim myliste(0 To hsh.Count, 1 To 4)

    For i = 0 To hsh.Count - 1
        myliste(i, 1) = hsh.keys()(i)
        myliste(i, 2) = hsh.items()(i)(0)
        myliste(i, 3) = hsh.items()(i)(1)
        myliste(i, 4) = hsh.items()(i)(2)
    Next

    Me.ComboBox_Auftragsnummer.List = myliste

in die Items des Dictionarys nimmst du ein Array, dass dann die weiteren Werte pro zeile enthält.

Gruß Daniel
slowboarder
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 27553
Registriert: 18. Apr 2009, 13:33

Re: 4 Spaltige Cbo mit dictonary füllen

Beitragvon dieanne » 02. Dez 2020, 12:48

erstmal vielen Dank für eure schnelle Hilfe, hat mir sehr geholfen den Tag zu retten.
@snowboarder
Dein codeerweiterung hat super funktioniert.

@snb
Wofür brauchst du ein Dictionary ?

um eine cbo in abhängigkeit zu füllen und zu filtern, erschien mir ein dictonary als sinnvoll.

Vielleicht hast du ein besseres Beispiel?
das 2.Cbo soll in abhängigkeit zum 1. befüllt werden.
Der Wert vom1.cbo steht in Spalte B und kommt mehrfach vor, in der Spalte C-F ist der inhalt für die 2.cbo


LG
dieanne
 

Re: 4 Spaltige Cbo mit dictonary füllen

Beitragvon snb » 02. Dez 2020, 12:51

Lade mal bitte eine Beispieldatei hoch.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8188
Registriert: 25. Sep 2014, 16:37

Re: 4 Spaltige Cbo mit dictonary füllen

Beitragvon slowboarder » 02. Dez 2020, 13:00

HI
das Dictionary ist dann das Mittel der Wahl, wenn Werte in der ersten Spalte (die die du für den Key verwendest) mehrfach vorkommen, in der Combobox aber nur einmal erscheinen sollen.

also aus

A
A
A
B
C
C

wird
A
B
C

Gruß Daniel
slowboarder
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 27553
Registriert: 18. Apr 2009, 13:33


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], uwe-k und 6 Gäste