Vlookup - Laufzeitfehler 1004

waswiewo

Erfahrenes Mitglied
Nach zweistündigem googeln und bevor ich den PC gleich auf den Boden schmeiß' um drauf einzuschlagen, wende ich mich nun an euch Profis.

Ich hab eine Userform. Auf der Userform ist ein Label. Dessen Caption soll wenn ein bestimmter Wert gegeben ist, aus der selben Excel-Datei einen Wert dazu liefern. Er zeigt mir einen Fehler nach dem anderen an, alles hab ich versucht!

Wenn ich den Wert aus einer externen Datei holen will, dann geht alles prima! Ich sehe keinen Fehler. Meine Formel sieht aus wie jede andere der hunderttausende durch googel gefundene Formeln auch.

Bitte helft mir, sehe vor lauter Bäumen den Wald schon nicht mehr.

Hier die Formel:

Code:
fsp.Caption = Application.WorksheetFunction.VLookup(varSuchbegriff, ActiveWorkbook.Sheets("Finishes").Range("A1:B169"), 2, False)

Die Datei heist Data
Mein Workbook heist Data
Die Tabelle Finishes

Habe bereits jede erdenkliche Version wie zB "Workbook("Data").Sheets("Finishes").Range ..." usw ausprobiert.

Die aktuelle Fehlermeldung lautet:

Die Vlookup-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.

Zeigen son dämlichen Fehler an, aber nicht wie man ihn beheben kann ... könnt kot... (sorry) !
 
Deine Zeile sollte so lauten:
Visual Basic:
fsp.Caption = Application.VLookup(varSuchbegriff, ActiveWorkbook.Sheets("Finishes").Range("A1:B169"), 2, False)


Der Doc!
 
Jetzt kommt statt die oben angegebene Meldung, die Meldung Typen unverträglich.

Edit:

So geht es in ner anderen Datei:

Code:
    Dim objExcel As Excel.Application
    Dim objSheet As Object
    Dim varSuchbegriff As Variant
    
 If L2.Caption < 2 Or L2.Caption > 170 Then

    fsp.Visible = False
    
 Else

    fsp.Visible = True
    
 End If

 If L2.Caption > 1 Or L2.Caption < 171 Then varSuchbegriff = Val(L2.Caption) Else varSuchbegriff = L2.Caption
 
        On Error Resume Next
        
        objExcel.Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "finishes.xls"
   
        Set objSheet = objExcel.Sheets("Tabelle1")
        
        fsp.Caption = "Mögliches Finish: " & WorksheetFunction.VLookup(varSuchbegriff, objSheet.Range("A1:B169"), 2, False) & ""
        finish.Caption = "" & WorksheetFunction.VLookup(varSuchbegriff, objSheet.Range("A1:B169"), 2, False) & ""

        If Err.Number <> 0 Then fsp.Visible = False
        
objExcel.ActiveWorkbook.Close SaveChanges:=False
objExcel.Quit

Set objExcel = Nothing
Set objSheet = Nothing

Wieso geht es denn dann nicht, wenn der Verweis aus der selben Datei kommt?

Die obige Methode dauert halt bei langsameren PC's ..
 
Zuletzt bearbeitet:
Häng mal deine Datei, in der es nicht funktioniert hier ran, damit ich das am lebenden Objekt testen kann.


Der Doc!
 
Ich habe alles nochmal neu geschrieben.. nun geht's, keine Ahnung wo ich da wieder nen Fehler gemacht habe.

Ne kleine Frage habe ich noch... ich möchte in dem Label etwas wieder geben, wenn irgendeins von 4 weiteren labels einen bestimmten wert hat. Bisher hab ich das mit Sub TextBox_Enter() gemacht. Geht das auch mit Userform_enter ? oder sowas ähnlichem? da würde ich ne menge code einsparen
 
Ein Label ändert ja nur seinen Wert (bzw. die Caption), wenn du per Code etwas einfügst. Hier würde ich mit der Prüfung ansetzen, so etwas wie ein Change-Event für Labels gibt es leider nicht.

Für eine Form gibt es natürlich diverse Events (so wie Activate usw.), die du nützen kannst.


Der Doc!
 

Neue Beiträge

Zurück