Anzeige
Archiv - Navigation
1588to1592
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 mehreren Spalten füllen
30.10.2017 09:33:49
David
Hallo zusammen,
ich versuche gerade die ComboBox in einer UserForm mit mehreren Spalten zu befüllen.
Ich will, dass der Nutzer in der ComboBox die Einträge in den Spalten "A" bis "I" aus der Tabelle "Punkte" anwählt, dann soll diese Zeile in einem anderen Tabellenblatt ("Abrechnung") eingetragen und weiterverarbeitet werden.
Aktuell habe ich das so gelöst, dass ich mir in Spalte "K" per TEXT()-Formel im Tabellenblatt alle Einträge der Spalten "A" - "I" zusammenklebe und als EINEN Eintrag in die ComboBox einlese. Das ist aber suboptimal, weil ich sie dann hinterher wieder auseinander schneiden muss.
Ich bräuchte also eine Formel zum Befüllen der ComboBox mit den Spalten A - I; und dann eine Möglichkeit, die Daten (ggf.) auch selektiv weiter zu verarbeiten.
Mein Code sieht aktuell so aus (ich hole mir nur EINEN Zahlen Wert (Umfang) wieder "raus", indem ich ihn von rechts abtrenne, mit "\" ):
Option Explicit

Private Sub CommandButton5_Click()
On Error Resume Next
Dim erste_freie_ZeileA As Integer
Dim intLeerPos As Integer
Dim intZeichenPos As Integer
Dim PB_Länge As Integer
Dim Projektbeschreibung As String
Dim PB_übertragen As String
Dim AusgelesenerUmfang As String
Dim Umfang As Integer
Projektbeschreibung = ComboBox1.Text
PB_Länge = Len(Projektbeschreibung)
intLeerPos = PB_Länge - InStr(Projektbeschreibung, "\")
intZeichenPos = InStr(Projektbeschreibung, "\") - 1
PB_übertragen = Left(Projektbeschreibung, intZeichenPos)
AusgelesenerUmfang = Right(Projektbeschreibung, intLeerPos)
Umfang = Val(AusgelesenerUmfang)
erste_freie_ZeileA = Sheets("Abrechnung").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Abrechnung").Cells(erste_freie_ZeileA, 1) = PB_übertragen
Sheets("Abrechnung").Cells(erste_freie_ZeileA, 2) = Umfang
Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim Repeatings As Integer
For Repeatings = 2 To Sheets("Punkte").Range("A65536").End(xlUp).Row
ComboBox1.AddItem Sheets("Punkte").Cells(Repeatings, 11)
Next
End Sub

DANKE!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 10:21:15
Nepumuk
Hallo David,
ein Beispiel:
Private Sub UserForm_Initialize()
    Dim Repeatings As Long
    With ComboBox1
        For Repeatings = 2 To Worksheets("Punkte").Range("A65536").End(xlUp).Row
            .AddItem Worksheets("Punkte").Cells(Repeatings, 11).Value
            .List(.ListCount - 1, 1) = Worksheets("Punkte").Cells(Repeatings, 12).Value
            .List(.ListCount - 1, 2) = Worksheets("Punkte").Cells(Repeatings, 13).Value
            .List(.ListCount - 1, 3) = Worksheets("Punkte").Cells(Repeatings, 14).Value
        Next
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 10:30:50
David
Hallo Nepumuk,
vielen Dank. Das läuft ohne Fehlermeldung; aber in der Combobox wird mir damit nur der Inhalt der Spalte "K" (11) angezeigt?!
Muss ich woanders was ändern?
LG, David
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 10:29:01
Armin
Hallo,
Private Sub UserForm_Initialize()
Dim Repeatings As Integer
Dim N as Integer
For Repeatings = 2 To Sheets("Punkte").Range("A65536").End(xlUp).Row
ComboBox1.AddItem
N=ComboBox1.ListCount - 1
ComboBox1.List(N,0)= Sheets("Punkte").Cells(Repeatings, 11)
ComboBox1.List(N,1)= Sheets("Punkte").Cells(Repeatings, 12)
'bis max 9
Next
End Sub
Gruß Armin
Anzeige
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 10:39:28
David
Hallo Armin,
Hab es für mich SO umgesetzt (wie gesagt: ich will ja die Spalten A - I):
Private Sub UserForm_Initialize()
Dim Repeatings As Integer
Dim N As Integer
For Repeatings = 2 To Sheets("Punkte").Range("A65536").End(xlUp).Row
ComboBox1.AddItem
N = ComboBox1.ListCount - 1
ComboBox1.List(N, 0) = Sheets("Punkte").Cells(Repeatings, 1)
ComboBox1.List(N, 1) = Sheets("Punkte").Cells(Repeatings, 2)
ComboBox1.List(N, 2) = Sheets("Punkte").Cells(Repeatings, 3)
ComboBox1.List(N, 3) = Sheets("Punkte").Cells(Repeatings, 4)
ComboBox1.List(N, 4) = Sheets("Punkte").Cells(Repeatings, 5)
ComboBox1.List(N, 5) = Sheets("Punkte").Cells(Repeatings, 6)
Next
End Sub
Aber er zeigt mir in der ComboBox in der UserForm weiter nur die Inhalte der Spalte "A" an.
Was mache ich falsch? :-)
Anzeige
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 10:58:28
Nepumuk
Hallo David,
du musst in den Eigenschaften der Combobox die ColumnCount-Eigenschaft auf 9 setzen.
Gruß
Nepumuk
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 11:09:30
David
Super! Das klappt!
Nur bleiben die 7 Spalten nicht "stehen", wenn ich eine Zeile in der ComboBox ausgewählt habe... Ist wahrscheinlich AUCH eine Einstellungssache?
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 12:02:14
Nepumuk
Hallo David,
eine Combobox kann immer nur einen Wert aus einer Spalte anzeigen. Wenn du eine andere als die erste Spalte anzeigen willst, dann kannst du das über die TextColumn-Eigenschaft einstellen.
Gruß
Nepumuk
AW: ComboBox mit mehreren Spalten füllen
30.10.2017 12:16:36
David
hallo nepumuk,
das war super hilfreich. Vielen Dank!
Damit bin ich wirklich weiter gekommen.
Liebe Grüße,
David
Anzeige

56 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige