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

Forumthread: 2 Spalten in ComboBox anzeigen

2 Spalten in ComboBox anzeigen
30.04.2008 12:56:15
Josef
Hallo!
Ich habe in einer Userform 2 ComboBoxen sowie eine Listbox.
Die zweite ComboBox wird in Abhängigkeit der ersten ComboBox befüllt
In der Listbox erfolgt nach auswahl in der zweiten Combobox ein dreispaltiger Eintrag.
In der zweiten ComboBox wird nur der Wert aus der Spalte G eingetragen. Ich möchte jedoch erreichen, dass in der zweiten ComboBox ein zweispaltiger Eintrag und zwar aus der Spalte F und G eingetragen wird.
Alles andere sollte gleich bleiben. die Einträge in der listeBox sollten sich nicht verändern.
Wie würde hier bitte eine VBA lösung aussehen?
Hier wäre eine Musterdatei:

Die Datei https://www.herber.de/bbs/user/51982.xls wurde aus Datenschutzgründen gelöscht


Danke
Josef

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Spalten in ComboBox anzeigen
30.04.2008 13:29:00
Rudi
Hallo,
da du auf ein auf meinem Rechner nicht existierendes Workbook (Workbooks("Test_300408.xls")) referenzierst, läuft das bei mir nicht.
Überarbeite erst mal den Code.
Gruß
Rudi

AW: 2 Spalten in ComboBox anzeigen
30.04.2008 18:43:25
Josef
Hallo Rudi!
Danke für Deine Antwort. Ich habe angenommen, wenn man das file unter diesem Namen speichert, das dies gereicht.
tut mir leid, habe jetzt alles korrigiert und die Datei sollte temporär zu öffnen sein.
https://www.herber.de/bbs/user/51991.xls
Josef

Anzeige
AW: 2 Spalten in ComboBox anzeigen
02.05.2008 09:42:00
fcs
Hallo Josef,
ich empfehle dir dringend, den Code etwas mehr zu kommentieren, damit man durchblickt was die jeweiligen Anweisungen/Codeabschnitte bewirken bzw. erreichen sollen. Du selber und Fremde finden sich da bald nicht mehr zurecht. Insbesondere auch dadurch, dass du den Steuerelementen nicht immer aussagekräftige Namen gegeben hast.
Die nachfolgenden Anpassungen muss du machen, damit die Inhate der Spalten F und G in der Combobox subNamen5 2-spaltig gelistet werden und dabei alle Folgeaktionen weiterhin vom Inhalt der Spalte G abhängig sind.
Ich kenne deine deaktivierte Subroutine "Sortieren_CboN5" nicht, mit der du Combolisten-Inhalte sortierst. Für mehrspaltige Auswahllisten muss du ggf. eine andere Prozedur anwenden. Hier im Forum gibt es Lösungen dafür, hab aber keinen Link griffbereit.
Gruß
Franz
Im Userform-Editor folgende Eigenschaften der Combobox subNamen5 anpassen:
BoundColumn: 2
ColumnCount:2
ColumnsWidths: 42,5 Pt;283,45 Pt ____oder andere passende Werte
TextColumn: 2
Folgende Prozedur des Userforms muss du anpassen:

Private Sub subNamen5_Enter()
Dim aRow, iRow As Long
'Dim wks As Worksheet
' Dim lCoBo  As Long
'Set wks = Workbooks("Test_300408.xls").Worksheets("SUBKAPITEL")
Dim col As New Collection
subNamen5.Clear
'With subNamen5
'    .Clear                           ' löschen ComboBox
'    .ColumnCount = 2                 ' drei Spalten
'    .ColumnWidths = "1,5 cm;10 cm" ' Breite der Spalten
' .ListRows = 12                   ' angezeigte Zeilen
'.Height = 20                     ' Höhe der ComboBox
'.Font.Size = 8                  ' Schriftgröße
' .BackColor = RGB(204, 255, 204)  ' Hintergrundfarbe
'End With
aRow = IIf(IsEmpty(Range("A65536")), Range("A65536").End(xlUp).Row, 65536)
On Error Resume Next
For iRow = 2 To aRow
'With wks
If Cells(iRow, 4) = subNamen6 Then
col.Add Cells(iRow, 1), Cells(iRow, 7)
If Err = 0 Then
With Me.subNamen5                               '###fcs20080502
.AddItem Cells(iRow, 6)                       'Kapitelnummer ###fcs20080502
.List(.ListCount - 1, 1) = Cells(iRow, 7)     'Kapitelname   ###fcs20080502
End With                                        '###fcs20080502
Else
Err.Clear
End If
End If
'End With
Next iRow
On Error GoTo 0
'Call Sortieren_CboN5
End Sub


Anzeige
AW: 2 Spalten in ComboBox anzeigen
03.05.2008 07:08:26
Josef
Hallo fcs!
Danke für Deine Antwort und Deine Hilfe. Das war die Lösung. Ich wünsche noch ein angenehmes Wochenende.
Josef
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

2 Spalten in ComboBox anzeigen


Schritt-für-Schritt-Anleitung

Um in einer ComboBox in Excel VBA zwei Spalten anzuzeigen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Wähle das UserForm aus, in dem sich die ComboBox befindet.

  3. Wähle die ComboBox (z.B. subNamen5) aus.

  4. Setze die Eigenschaften der ComboBox:

    • BoundColumn: 2
    • ColumnCount: 2
    • ColumnWidths: Setze geeignete Werte (z.B. 42,5 Pt;283,45 Pt)
    • TextColumn: 2
  5. Füge den folgenden VBA-Code in das UserForm ein:

    Private Sub subNamen5_Enter()
       Dim aRow, iRow As Long
       Dim col As New Collection
       subNamen5.Clear
       aRow = IIf(IsEmpty(Range("A65536")), Range("A65536").End(xlUp).Row, 65536)
       On Error Resume Next
       For iRow = 2 To aRow
           If Cells(iRow, 4) = subNamen6 Then
               col.Add Cells(iRow, 1), Cells(iRow, 7)
               If Err = 0 Then
                   With Me.subNamen5
                       .AddItem Cells(iRow, 6)   ' Kapitelnummer
                       .List(.ListCount - 1, 1) = Cells(iRow, 7)   ' Kapitelname
                   End With
               Else
                   Err.Clear
               End If
           End If
       Next iRow
       On Error GoTo 0
    End Sub
  6. Teste die UserForm, um sicherzustellen, dass die ComboBox nun die gewünschten Werte anzeigt.


Häufige Fehler und Lösungen

  • Fehler: ComboBox zeigt keine Werte an.

    • Lösung: Überprüfe, ob die BoundColumn, ColumnCount, und TextColumn richtig eingestellt sind. Stelle sicher, dass die Datenquelle in den Zellen korrekt ist.
  • Fehler: Die ComboBox bleibt leer.

    • Lösung: Vergewissere dich, dass die Schleife über die gewünschten Zeilen korrekt definiert ist. Überprüfe zudem die Bedingungen, die zum Füllen der ComboBox verwendet werden.
  • Fehler: Fehlermeldungen im Code.

    • Lösung: Kommentiere den Code, um besser zu verstehen, wo der Fehler auftritt. Achte darauf, alle Variablen richtig zu deklarieren.

Alternative Methoden

Wenn Du eine andere Methode zur Anzeige mehrerer Spalten in einer ComboBox verwenden möchtest, kannst Du auch die ListBox in Betracht ziehen. Eine ListBox bietet mehr Flexibilität, um mehrere Spalten anzuzeigen. Die Vorgehensweise ist ähnlich:

  1. Setze die ColumnCount-Eigenschaft der ListBox.
  2. Füge die Daten in die ListBox in einer ähnlichen Weise wie in der ComboBox hinzu.

Praktische Beispiele

Hier ist ein Beispiel, wie Du die ComboBox für die Auswahl von Kapiteln in einem Buch verwenden kannst:

  • Daten in Excel:

    • Spalte F: Kapitelnummer
    • Spalte G: Kapitelname
  • VBA-Code: Der oben angegebene Code fügt die Kapitelnummer und den Kapitelname in die ComboBox subNamen5 ein, sodass der Benutzer beide Informationen gleichzeitig sieht.


Tipps für Profis

  • Verwende aussagekräftige Namen für Deine Steuerelemente, um den Überblick zu behalten.
  • Kommentiere Deinen Code ausführlich, damit Du und andere Benutzer in Zukunft verstehen, was jeder Abschnitt bewirken soll.
  • Teste regelmäßig Deine UserForms, um sicherzustellen, dass alle Funktionen wie gewünscht arbeiten, insbesondere nach Änderungen.

FAQ: Häufige Fragen

1. Wie kann ich die Breite der Spalten in der ComboBox anpassen? Du kannst die Breite der Spalten über die Eigenschaft ColumnWidths anpassen, indem Du geeignete Werte in Punkten oder Zentimetern angibst.

2. Ist es möglich, mehr als zwei Spalten in einer ComboBox anzuzeigen? Ja, Du kannst die ColumnCount-Eigenschaft erhöhen, um mehr Spalten anzuzeigen. Denke daran, dass dies die Benutzerfreundlichkeit beeinträchtigen kann.

3. Funktioniert dieser Code in allen Excel-Versionen? Der VBA-Code sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren. Achte darauf, dass die Benutzerform korrekt konfiguriert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige