Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Combobox mit zwei Spalten

Combobox mit zwei Spalten
13.05.2019 17:52:14
milena
Hallo zusammen,
ich habe in meiner Combobox immer die Angebotsnummern ausgegeben. Da diese in der Tabelle mehrmals vorkommen, immer jeweils nur einmal in der Combobox.
Nun möchte ich gern auch noch in einer zweiten Spalte der Combobox den zugehörigen Kunden anzeigen lassen. Es gehört immer genau ein Kunde zu jeder Nummer.
D.h. das ganze zweispaltig machen.
Die Angebotsnummer steht in Spalte "A" und der Kundenname in "D"
Mein Code zum füllen der Combobox sieht wie folgt aus:
Private Sub UserForm_Initialize()
Dim hsh As Object, i As Long
Set hsh = CreateObject("Scripting.Dictionary")
With Sheets(4)
For i = 5 To .Cells(.Rows.Count, 1).End(xlUp).Row
hsh(.Cells(i, 1).Text) = 0
Next
End With
Me.ComboBox_Auftragsnummer.List = Application.Transpose(hsh.Keys)
End Sub

Danke schon mal für die Hilfe und LG
Milena
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Combobox mit zwei Spalten
13.05.2019 19:42:11
Nepumuk
Hallo Milena,
teste mal:
Private Sub UserForm_Initialize()
    
    Dim objDictionary As Object
    Dim ialngIndex As Long, ialngCount As Long
    Dim astrValues() As String
    Dim avntValues As Variant
    
    Set objDictionary = CreateObject("Scripting.Dictionary")
    
    With Worksheets(4)
        avntValues = .Range(.Cells(5, 1), .Cells(.Rows.Count, 4).End(xlUp)).Value
    End With
    
    For ialngIndex = LBound(avntValues, 1) To UBound(avntValues, 1)
        
        If Not objDictionary.Exists(Key:=avntValues(ialngIndex, 1)) Then
            
            Redim Preserve astrValues(1, ialngCount)
            
            astrValues(0, ialngCount) = avntValues(ialngIndex, 1)
            astrValues(1, ialngCount) = avntValues(ialngIndex, 4)
            
            ialngCount = ialngCount + 1
            
            Call objDictionary.Add(Key:=avntValues(ialngIndex, 1), Item:=vbNullString)
            
        End If
    Next
    
    Set objDictionary = Nothing
    
    ComboBox_Auftragsnummer.Column = astrValues
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Combobox mit zwei Spalten
13.05.2019 20:02:50
Matthias
Moin!
Dann schreibe es mal so. Die Combo noch 2 spalitg machen (ColumnCount und die Breite bei width setzen). Mit dem Code sollte es klappen.
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

VG
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige