Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA VLookUp Fehler'1004

Forumthread: VBA VLookUp Fehler'1004

VBA VLookUp Fehler'1004
12.08.2022 16:19:10
Herbert
Moin moin Leute ich nochmal,
ich habe hier noch ein neues kleines Problem... .
Ich möchte eigentlich wie sonst auch einen VLookUP in VBA benutzen,
hab ich sonst auch hinbekommen, jetzt aber kriege ich die ganze Zeit den
Laufzeitfehler '1004':
Die VLookup-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.
Code:

Private Sub cmdbtn_ÜBERNAHME_2_Click()
Dim Search As Variant
Search = "2661"
With Worksheets("Datenbank")
Range("A30").Value = WorksheetFunction.VLookup(Search, Range("tbl_DEHA"), 2, False).Value
End With
End Sub
Beispieldatei:
https://www.herber.de/bbs/user/154620.xlsm
Der VLookup funktioniert auch nicht, wenn ich ein "Application." davor setze... .
Danke schon einmal im Voraus wir machen hier heute einen ticken eher Feierabend! ^^
MfG
Herbert

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA VLookUp Fehler'1004
12.08.2022 17:03:00
Daniel
Hi
die Datei scheint nicht zu passen.
es gibt kein Sheet "Datenbank" und den Namen "tbl_DEHA" gibts auch nicht.
Der Code kann so nur funktionieren, wenn der VLookUp einen Treffer hat, dh der Suchbegriff muss im durchsuchten Bereich vorhanden sein.
weiterhin musst du genau schauen, wie der gesuchte Werte in er Tabelle vorliegt. für den VLookUp ist der Text "2661" was anderes als die Zahl 2661 und wenn du mit dem Text suchst und die Zahl vorliegt (oder umgekehrt) gibt es keinen Treffer.
Gruß Daniel
Anzeige
AW: VBA VLookUp Fehler'1004
17.08.2022 08:26:34
Herbert
Guten Morgen Daniel,
ich habe den Code noch einmal überarbeitet,
wenn ich die richtigen Tabellendaten da eintragen,
funktioniert der VLookUP trotzdessen nicht.
Code:

Private Sub cmdbtn_ÜBERNAHME_2_Click()
Dim Search As Variant
Search = "Test"
With Worksheets("Test1234")
Range("A30").Value = WorksheetFunction.VLookup(Search, Range("tbl_Inventarnummern"), 2, False).Value
End With
End Sub
Vorne in der ersten Spalte habe ich den Begriff: "Test" eingetragem,
trotzdem funktioniert der VLookUP nicht.
MfG
Herbert

Anzeige
AW: VBA VLookUp Fehler'1004
17.08.2022 09:01:52
GerdL
Moin Herbert,
du suchst den Begriff in Spalte A (erster Spalte des benannten Range) u. erhältst bei Treffer den Mengenwert aus Spalte B
oder einen Fehler.
In deiner Beispieltabelle wolltest du den Suchbegriff mit Sicherheit nicht in Spalte A suchen
Gruß Gerd
Gelöst!
17.08.2022 10:19:52
Herbert
Moin Gerd,
doch er sollte die Inventarnummern nach der Laststufe zuordnen,
in einer in einem anderen Tabellenblatt festeghalten Tabelle.
Lösungsweg:
Ich habe eine neue Mappe erstellt einen VLookUP basierend auf keinerlei extra Daten erstellt,
diese dann immer weiter bearbeitet,
bis ich die Variablen soweit angepasst habe,
das diese den meinen in der Originalmappe entsprechen,
danach musste ich noch einmal Suchbegriffe in der Originalemappe abändern,
weil der VLookUP nicht "1 - 1,3 to." als Suchbegriff nehmen wollte,
habe ich diesen auf "1-1,3 to." abgeänder,
also keine Leerzeichen zwischen den Zahlen und den Minuszeichen.
Hier der Problemgelöste Code:

Sub Daten_Übernahme()
Dim i As Integer, k As Integer, e As Integer, _
Vari As Variant, x As Integer
For i = 1 To Worksheets("Datenbank").Range("tbl_Lieferschein").Rows.Count
If Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 1).Value = "" Then
'DEHA-Gehänge in Tabelle übernehmen:
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 1).Value = Range("Lieferschein_Nummer").Value
For e = 20 To 25
Vari = Worksheets("Datenbank").Cells(1, e)
For x = 3 To 6
On Error GoTo Fehlerbehebung:
MsgBox Application.WorksheetFunction.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)
Next x
Fehlerbehebung:
Resume Next
Next e
'Andere Daten vom Lieferschein übernehmen:
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 2).Value = Range("Name_Verlader").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 3).Value = Range("Auftragsnummer").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 4).Value = Range("Kunde").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 5).Value = Range("Baustelle").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 6).Value = Range("Datum").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 15).Value = Range("Spedition").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 16).Value = Range("Fahrzeug_Kennzeichen").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 17).Value = Range("Fahrer").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 18).Value = Range("Unterschrift").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 19).Value = Range("Blockschrift").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 20).Value = Range("Auf_Baustelle_verblieben").Value
Exit Sub
End If
Next i
End Sub
Die untere Code Schnippsel mit den ganzen Worksheetdeklarierungen werden noch überarbeitet und in eine Array gehauen.
Der Problemgelöste Code am Beispiel:

Private Sub cmdbtn_ÜBERNAHME_2_Click()
Dim Search As Variant, x As Integer
Search = "1-1,3 to."
For x = 3 To 7
On Error GoTo Fehlerbehebung:
MsgBox Application.WorksheetFunction.VLookup(Search, Range("tbl_Inventarnummern"), x, False)
Next x
Fehlerbehebung:
Exit Sub
End Sub
Danke für alle Antworten und Hilfen!
MfG
Herbert

Anzeige
AW: VBA VLookUp Fehler'1004
12.08.2022 17:03:13
ralf_b
du benutzt eine with klammer aber verwendest darin keinen Punkt vor den Zellbezügen. Vielleicht ist es das schon.
AW: VBA VLookUp Fehler'1004
17.08.2022 08:40:46
Herbert
Guten Morgen Ralf,
mit dem Punkt habe ich es auch probiert,
das funktiniert aber so auch nicht... . :/
Aber danke für deine Antwort! ^^
MfG
Herbert

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA VLookUp Fehler 1004 beheben


Schritt-für-Schritt-Anleitung

Um den Laufzeitfehler '1004' zu beheben, wenn Du die VLookup-Funktion in VBA verwendest, folge diesen Schritten:

  1. Überprüfe die Tabellennamen: Stelle sicher, dass die Namen der Arbeitsblätter und Tabellenbereiche korrekt sind. Wenn Du beispielsweise auf Worksheets("Datenbank") zugreifst, muss das Blatt existieren.

  2. Suchbegriff anpassen: Der Suchbegriff muss genau mit dem Datentyp im Tabellenbereich übereinstimmen. Ein Text wie "2661" ist nicht das gleiche wie die Zahl 2661.

  3. Anwendung der richtigen Syntax:

    Dim Search As Variant
    Search = "Test"
    Range("A30").Value = Application.WorksheetFunction.VLookup(Search, Range("tbl_Inventarnummern"), 2, False)
  4. Fehlerbehandlung hinzufügen: Implementiere eine Fehlerbehandlung, um VLookup-Fehler abzufangen:

    On Error Resume Next
    MsgBox Application.WorksheetFunction.VLookup(Search, Range("tbl_Inventarnummern"), 2, False)
    If Err.Number <> 0 Then
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End If

Häufige Fehler und Lösungen

  • Fehler 1004 beim VLookUp: Dies passiert oft, wenn die VLookup-Eigenschaft des WorksheetFunction-Objektes nicht korrekt zugeordnet werden kann. Überprüfe die Syntax und die Existenz der benannten Bereiche.

  • Falscher Datentyp: Achte darauf, dass der gesuchte Wert im gleichen Format vorliegt wie der Wert in der Tabelle. Wenn Du mit Text suchst, aber die Tabelle Zahlen enthält, wird kein Treffer erzielt.

  • Falsche Verwendung von With-Klauseln: Stelle sicher, dass Du in einem With-Block den Punkt vor den Zellreferenzen verwendest, um auf die Eigenschaften des Arbeitsblattes zuzugreifen.


Alternative Methoden

Wenn VLookup nicht funktioniert, kannst Du auch andere Methoden in Betracht ziehen:

  • Index und Vergleich kombinieren:

    Dim result As Variant
    result = Application.Index(Range("tbl_Inventarnummern"), Application.Match(Search, Range("tbl_Inventarnummern").Columns(1), 0), 2)
  • SVERWEIS in Excel-Funktionen verwenden: Anstatt VLookup in VBA zu verwenden, kannst Du auch die Excel-Funktion direkt in einer Zelle verwenden, um die Daten abzurufen.


Praktische Beispiele

Hier sind einige Beispiele, die Dir helfen können:

  1. Einfaches VLookup-Beispiel:

    Sub BeispielVLookup()
    Dim Suchwert As String
    Suchwert = "Test"
    Dim Ergebnis As Variant
    Ergebnis = Application.WorksheetFunction.VLookup(Suchwert, Range("tbl_Inventarnummern"), 2, False)
    MsgBox Ergebnis
    End Sub
  2. VLookup mit Fehlerbehandlung:

    Sub BeispielVLookupFehlerbehandlung()
    Dim Suchwert As String
    Suchwert = "NichtVorhanden"
    On Error Resume Next
    Dim Ergebnis As Variant
    Ergebnis = Application.WorksheetFunction.VLookup(Suchwert, Range("tbl_Inventarnummern"), 2, False)
    If IsError(Ergebnis) Then
       MsgBox "Suchbegriff nicht gefunden."
    Else
       MsgBox Ergebnis
    End If
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Setze am Anfang Deiner Module die Anweisung Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler frühzeitig zu erkennen.

  • Benutze die Evaluate-Funktion: Für komplexere Berechnungen kann die Evaluate-Funktion hilfreich sein, um Formeln direkt in VBA zu verarbeiten.

  • Datenvalidierung verwenden: Sorge dafür, dass die Eingabewerte validiert werden, bevor Du den VLookup ausführst, um unerwartete Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Warum bekomme ich den Fehler '1004' bei der Verwendung von VLookup? Der Fehler tritt meistens auf, wenn der Suchbegriff nicht im angegebenen Bereich gefunden wird oder wenn die Referenzen auf die Arbeitsblätter und Bereiche nicht korrekt sind.

2. Wie kann ich Fehler beim VLookup in VBA abfangen? Du kannst Fehler mit On Error Resume Next abfangen und anschließend überprüfen, ob ein Fehler aufgetreten ist, indem Du Err.Number verwendest.

3. Gibt es Alternativen zu VLookup in VBA? Ja, Du kannst Index und Match verwenden, um flexiblere Suchen durchzuführen oder die Evaluate-Methode nutzen, um Excel-Formeln direkt in VBA zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige