Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Application.VLookup -Typen unverträglich

Betrifft: Application.VLookup -Typen unverträglich von: Uwe
Geschrieben am: 06.10.2020 08:15:34

Hallo,
ich bekomme die Meldung: Typen unverträglich.
sSheet = "meinblatt"
sAddress = Range("a1", "d55").Address(ReferenceStyle:=xlA1) 'Zellbereich

vErgebnis = Application.VLookup("104", "'" & vVerzeichnis & "[" & vdatei & "]" & sSheet & "'!" & sAddress, 4, False)

Wo steckt der Fehler?
Gruß
Uwe

Betrifft: AW: Application.VLookup -Typen unverträglich
von: MRUTOR
Geschrieben am: 06.10.2020 08:34:36

Hallo Uwe,

als was ist vErgebnis deklariert?
Zeig mal den kompletten code.

Gruss Tor

Betrifft: AW: Application.VLookup -Typen unverträglich
von: Uwe
Geschrieben am: 06.10.2020 09:07:13

Hallo,

so sieht es jetzt aus:

Die Variablen sind gefüllt.
Gruß
Uwe

Dim vErgebnis As String
Dim sSuchwert As Integer
dim sPfad as string
Dim vdatei As String
Dim sSheet as string
Dim sAddress As String
sAddress = Range("a1", "d55").Address(ReferenceStyle:=xlA1) 'Zellbereich

sSuchwert = 104

vErgebnis = Application.VLookup(sSuchwert, "'" & sPfad & "[" & vdatei & "]" & sSheet & "'!" & sAddress, 4, False)

Betrifft: AW: Application.VLookup -Typen unverträglich
von: MRUTOR
Geschrieben am: 06.10.2020 09:15:49

Dann ist es wie Daniel gesagt hat. Du hast den sSuchwert als Zahl deklariert aber willst den zurueckgeben an eine String Variable vErgebnis. Da sind natuerlich die Typen unvertraeglich.

Betrifft: AW: Application.VLookup -Typen unverträglich
von: Daniel
Geschrieben am: 06.10.2020 09:24:22

Noch ein Fehler:

Die Variable vErgebnis muss als Variante deklariert werden.
Nur dann kann sie den Fehler der entsteht, wenn der Suchbegriff nicht gefunden werden kann, aufnehmen und du kannst dann im Code dies Abfragen und darauf reagieren ohne dass es einen Fehlerabbruch gibt.

Gruß Daniel

Betrifft: AW: Application.VLookup -Typen unverträglich
von: Uwe
Geschrieben am: 06.10.2020 09:50:41

Hallo,
danke, die Deklaration Variante war die Lösung.
Aber komischer Weise wird nichts gefunden.
Ich gehe noch mal auf die Suche.
Gruß
Uwe

Betrifft: AW: Application.VLookup -Typen unverträglich
von: Daniel
Geschrieben am: 06.10.2020 10:15:46

HI
welchen Fehlerwert bekommst du denn?
baue hierzu mal nach dem VLookUp den Befehl ein:
MsgBox CStr(vErgebnis)
bekommst du den "Fehler 2042", dann wird dein Wert tatsächlich nicht gefunden.
bekommst du den "Fehler 2015", liegt es daran, was ich dir in meinem ersten Beitrag geschrieben habe, denn du anscheinend bisher übersehen hast.

Gruß Daniel

Betrifft: AW: Application.VLookup -Typen unverträglich
von: Uwe
Geschrieben am: 06.10.2020 10:18:17

Hallo Daniel,
ich hatte einen Fehler im Netzwerkpfad.
Das Problem sitzt vor dem Monitor....
Gruß
Uwe

Betrifft: AW: Application.VLookup -Typen unverträglich
von: Daniel
Geschrieben am: 06.10.2020 08:37:11

Hi
Wenn du den VLookUp in VBA verwendet, musst du den Suchbereich als echtes Range-Objekt angeben und nicht als Textstring.
vErgebnis = Application.VLookup("104", Workbooks(vdatei).Sheets(sSheet).Range(sAddress), 4, False)
Die Datei muss aber vorher geöffnet werden, da VBA nicht auf geschlossene Dateien zugreifen kann.
Wenn die Datei geschlossen bleiben soll, kannst du alternativ die Formel in eine Zelle schreiben und denn Zellwert auslesen.

Weiterhin musst du beachten, dass VLookup streng zwischen Text und Zahl unterscheidet und den Text "104" nicht findet, wenn im Suchbereich die Zahl 104 steht.

Gruß Daniel