Clever-Excel-Forum

Normale Version: Bitte Hilfe VBA Combobox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, guten Abend,

ich verwende seit sehr langer Zeit das erste mal wieder eine Combobox, ich hab jetzt 3 Stunden herumgespielt, kann aber den Fehler nicht finden. Ehrlich gesagt verzweifle ich gerade ein bisschen.

Sinn soll sein, aus dem Tabellenblatt "Settings" eine Tabelle auszulesen mit 3 Spalten, wo die Anzahl der Zellen automatisch gezählt wird und der letzte Wert automatisch gefunden wird. Diese Tabelle soll dann eine Combobox mit den Werten aus den 3 Spalten und der automatisch ermittelten letzten Zelle erstellen und in einem Dropdown anzeigen, wo ich auch drinnen suchen kann.

Wenn das mal funktioniert, möchte ich noch 2 Buttons einfügen "Auswahl bestätigen" und "Abbrechen".

Bitte um eure Hilfe!


Hier der Code:


Code:
Sub Sprachauswahl()

Dim letzteZeile As Byte
Dim iZelle As Byte

Dim wks1 As Worksheet

Set wks1 = Worksheets("Settings")

letzteZeile = wks1.Range("A" & Rows.Count).End(xlUp).Row

Dim Sprachauswahlbox As Object
With Sprachauswahlbox
    .ColumnCount = 3
    For iZelle = 1 To letzteZeile
        Sprachauswahlbox.AddItem wks1.Cells(iZelle, 1)
        Sprachauswahlbox.AddItem wks1.Cells(iZelle, 2)
        Sprachauswahlbox.AddItem wks1.Cells(iZelle, 3)

    Next iZelle
    .List = Sprachauswahlbox

End With


Sprachauswahlbox = fmStyleDropDownList

End Sub
Hallo,
Sub Sprachauswahl()

Dim letzteZeile As Long
Dim iZelle As Long
Dim wks1 As Worksheet
Dim Sprachauswahlbox As MSForms.ComboBox

Set wks1 = Worksheets("Settings")
Set Sprachauswahlbox = wks1.OLEObjects("ComboBox1").Object '< Name anpassen

letzteZeile = wks1.Range("A" & Rows.Count).End(xlUp).Row

With Sprachauswahlbox
.Clear
.ColumnCount = 3
.Style = fmStyleDropDownList
For iZelle = 1 To letzteZeile
.AddItem wks1.Cells(iZelle, 1)
.List(.ListCount - 1, 1) = wks1.Cells(iZelle, 2)
.List(.ListCount - 1, 2) = wks1.Cells(iZelle, 3)
Next iZelle
If .ListCount Then .ListIndex = iZelle - 2
End With

End Sub
Gruß Uwe
Hallo Uwe,

zuerst herzlichen Dank für die Antwort!

Leider bekomme ich da noch eine Fehlermeldung, so sieht mein Code aus:

Code:
Sub Language_Choice()

Dim letzteZeile As Long
Dim iZelle As Long
Dim wks_settings As Worksheet
Dim Sprachauswahlbox As MSForms.combobox ---------> Warum wird bei mir das combobox immer klein geschrieben wenn ich Enter drücke? Ist das zufällig das Problem
Set wks_settings = Worksheets("Settings")
Set Sprachauswahlbox = wks_settings.OLEObjects("ComboBox1").Object 'Name anpassen ---> diese Zeile wird gelb markiert bei der Fehlermeldung

letzteZeile = wks_settings.Range("A" & Rows.Count).End(xlUp).Row

With Sprachauswahlbox
    .Clear
    .ColumnCount = 3
    .Style = fmStyleDropDownCombo
    For iZelle = 1 To letzteZeile
        .AddItem wks_settings.Cells(iZelle, 1)
        .List(.ListCount - 1, 1) = wks_settings.Cells(iZelle, 2)
        .List(.ListCount - 1, 2) = wks_settings.Cells(iZelle, 3)
    Next iZelle
    If .ListCount Then .ListIndex = iZelle - 2
End With
   
End Sub

Fehlermeldung: 
Laufzeitfehler 1004
Die Methode 'OLEObjects' für das Objekt '_Worksheet ist fehlgeschlagen

Bitte nochmal um Hilfe Sad
Hallo,

(08.10.2020, 21:02)excellover123 schrieb: [ -> ]Bitte nochmal um Hilfe Sad

Ohne Datei ist mir das bei Deiner dürftigen Beschreibung nicht möglich.

Gruß Uwe
Hallöchen,

Zitat:Ohne Datei ist mir das bei Deiner dürftigen Beschreibung nicht möglich.

Seh ich auch so. Man kann nur raten, ... z.B., dass Deine Combobox nicht mehr Combobox1 heißt (wobei der Text der Fehlermeldung 1004 etwas anders ist) oder ...
Entschuldigt bitte meine späte Antwort, wir hatten ein paar harte Tage (Baby krank, wir Eltern krank, Großeltern krank...).

Das Problem hat sich mittlerweile gelöst, ich hab einen anderen Weg genommen und zwar ganz einfach ein Zellendropdown im Excel selbst. Ist vielleicht nicht so eine edle Lösung, aber reicht für meine Zwecke aus.

Danke trotzdem für Eure Zeit!