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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige