VLOOKUP ... mal wieder
06.11.2025 09:28:51
Stefan
Zuvor folgendes: Diesem Post gingen stundenlange Recherchen im Netz (auch hier), verbunden mit ebensolange Probierphasen und zerbasteln des Codes nebst neuschreiben desselben voraus :)
Und ich kriegs noch immer nich hin. :(
Deshalb habe ich mich entschlossen, ein Minimalbeispiel zu basteln und auch hier mit anzuhängen. Die originale Tabelle ist größer (~400 Zeilen, 8 Spalten). Gleich ist aber der Aufbau (dreistellige Zahl in "A", Text in "B")
Was will ich?
Die Sub ist eine einfache Tabellensuche, die nach der Übereinstimmung in Spalte A sucht und das Ergebnis aus Spalte B zurückspielt in eine Variable, die dann zur Weiterverarbeitung dient.
Der Code
Option Explicit
Private Sub UserForm_Initialize()
' ComboBox füllen
ComboBox1.RowSource = "Tabelle1!A1:A9"
End Sub
' -----------------------------------
Private Sub CommandButton1_Click()
' Variable festlegen
Dim var_Ereignis As String
Dim var_ComboWert As String
' Variablen füllen
var_ComboWert = Me.ComboBox1.Value
var_Ereignis = WorksheetFunction.VLookup(var_ComboWert, ThisWorkbook.Sheets("Tabelle1").Range("A1:B9"), 2, False)
MsgBox var_Ereignis
End Sub
Die Beispieldatei:
https://www.herber.de/bbs/user/179540.xlsm
Bei der Initialisierung des UserForms wird die ComboBox gefüllt und nach einem Click auf den Button deren Wert an die Variable 'var_ComboWert' übergeben, die dann für die VLookup-Abfrage genutzt wird, deren Ergebnis dann der Variable 'var_Ereignis' übergeben wird.
Eigentlich ganz simpel. Dachte ich jedenfalls.
Mache ich das ganze mit einem SVERWEIS klappt alles tabellos, nur eben in VBA nicht.
Ich kriege entweder einen RTE 1004 ("Die Vlookup-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.") oder RTE 13 ("Typen unverträglich"), je nachdem, ob und wie ich die Variablenarten umstelle. Selbst wenn ich im Excel-Sheet die Zellformatierung auf "Text" (für beide Spalten) umstelle und die Variablen als "String" deklariere klappt es nich.
Wo hab ich jetzt 'n Denkfehler?
Anzeige