Office: VBA .Find Laufzeitfehler 91

Helfe beim Thema VBA .Find Laufzeitfehler 91 in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, Ich habe das Problem, das mir der folgende Code immer den Fehler ausgibt: „Laufzeitfehler 91: Objektvariable oder With-Blockvariable... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von xSalazar, 12. Dezember 2016.

  1. VBA .Find Laufzeitfehler 91


    Hallo Zusammen,
    Ich habe das Problem, das mir der folgende Code immer den Fehler ausgibt:
    „Laufzeitfehler 91:
    Objektvariable oder With-Blockvariable nicht festgelegt“

    Der Code soll die 5 Kriterien (Spalte B,C,G,H,I => Daher die Spaltenindizes von 2,3,7,8,9) der aktiven Zeile mit allen anderen Zeilen vergleichen. Wenn eine Zelle alle 5 anderen Kriterien der Aktiven Zeile ebenfalls erfüllt, soll eine MsgBox eine Warnung ausgeben, dass kontrolliert werden soll ob diese gefunden Zelle, die ebenfalls alle Kriterien erfüllt, nicht schon die gewünschte Eingabe ist. Sodass im Datenpool Werte nicht doppelt vorhanden sind.
    Das After in jeder Suche habe ich eingefügt, da die Suchen ja sonst immer auf die ganze Spalte gehen. Wenn ich mit der ersten Suche aber schon in Zeile 48 bin, muss die 2te Suche nicht wieder von 0 anfangen, da hier Kriterium 1 ja schon nicht erfüllt ist.

    Der Zähler x soll gewährleisten, dass die Suche auch weitere Werte findet die nach dem 1ten gefundenen Wert nachfolgen.

    Bitte um kurze Hilfe bin verwirrt...^^

    Private Sub CommandButton3_Click()
    Dim x, Spalte_3, Spalte_4, Spalte_5 As Double
    Dim Spalte_1, Spalte_2 As String


    Spalte_1 = Cells(ActiveCell.Row, 2)
    Spalte_2 = Cells(ActiveCell.Row, 3)
    Spalte_3 = Cells(ActiveCell.Row, 7)
    Spalte_4 = Cells(ActiveCell.Row, 8)
    Spalte_5 = Cells(ActiveCell.Row, 9)

    Dim c, d, e, f, g As Range
    x = 4

    Do While g.Row 0
    Set c = ActiveSheet.Range("B:B").Find(What:=Spalte_1, After:=Cells(x, 2))
    Set d = ActiveSheet.Range("C:C").Find(What:=Spalte_2, After:=Cells(c.Row, 3))
    Set e = ActiveSheet.Range("G:G").Find(What:=Spalte_3, After:=Cells(d.Row, 7))
    Set f = ActiveSheet.Range("H:H").Find(What:=Spalte_4, After:=Cells(e.Row, 8))
    Set g = ActiveSheet.Range("I:I").Find(What:=Spalte_5, After:=Cells(f.Row, 9))
    If Not g Is Nothing Then
    MsgBox "Maß ist bereits in der Zeile: " & g.Row & " vorhanden!" & vbCrLf & "Überpüfen Sie ob keine doppelte Bemaßung vorliegt."
    Else
    Exit Sub
    End If
    x = g.Row
    Loop

    End Sub

    :)
     
    xSalazar, 12. Dezember 2016
    #1
  2. Hi End Sub,

    an dieser Stelle hier:
    Code:
    definierst Du nur g als Range. Alles anderen Variablen sind vom Typ Variant. Du bist hier in VBA, da muss der Typ für jede Variable extra angegeben werden.

    Für die Zukunft: Es ist immer hilfreich zu erwähnen, in welcher Zeile genau der Debugger meckert.
     
  3. Vielen Dank schon einmal.

    Habe den Code, einmal so abgeändert.
    Der Debugger, schaltet mir an der Fett markierten Stelle auf Nothing. Danach springt er in den Exit Sub Strang.

    Die Werte darüber für c (Bsp."1234-5678") und d ("SHIM") findet er wunderbar. Aber Kriterium e wird auf ominöse Weise nicht gefunden.
    Das witzige dabei, wenn ich eine Zelle im Datenpool markiere die 2 Zeilen höher liegt, wird e ("0,25") noch richtig gefunden aber er steigt dann bei Variable f="Nothing" aus.

    Gruß Salazar

    Code:
     
    xSalazar, 14. Dezember 2016
    #3
  4. VBA .Find Laufzeitfehler 91

    Ok habe gerade herausgefunden (Was ich persönlich echt lächerlich finde), dass die Find Funktion auf die angezeigten Excel-Werte geht.

    Gibt man also einen Zellenwert von Bsp. 13,795 manuell ein und lässt Excel 2 Dezimalstellen anzeigen, somit 13,80. Kann die Funktion .Find den Wert nicht mehr finden.

    Klickt man die Zeile an, steht natürlich immer noch 13,795 drin. Der .Find Befehl findet das ganze nur nicht?!

    Stelle ich auf 3 Kommastellen in Excel funktioniert die VBA wunderbar.


    Kann man das ganze irgendwie umgehen?
    In meiner Variable Spalte_3 ist der richtige Wert mit 13,795 drin (laut Debugger), nur meine .Find Funktion kann nur den Wert 13,80 finden.
    Gibt es hier Einstellungsmöglichkeiten der .Find Funktion? Um nach dem korrekten Zellenwert und nicht dem angezeigten Wert zu suchen?
     
    xSalazar, 14. Dezember 2016
    #4
  5. Hallo Salazar,

    nutze Application.Match().

    Beispiele findest Du im Netz, auch hier im Forum.

    Grüße
    EarlFred
     
    EarlFred, 14. Dezember 2016
    #5
  6. Ok Vielen Dank alle Zusammen!!!!!

    Habe noch gemerkt, dass "LookIn:=xlFormulas" direkt die Formeln anschaut in Excel.
    Dann funktioniert alles.

    Vielen Dank!!!
    P.S.
    Das mit Match probiere ich nachher mal noch aus.
     
    xSalazar, 14. Dezember 2016
    #6
Thema:

VBA .Find Laufzeitfehler 91

Die Seite wird geladen...
  1. VBA .Find Laufzeitfehler 91 - Similar Threads - VBA Find Laufzeitfehler

  2. [VBA] PDF laden und bestimte dinge finden

    in Microsoft Excel Hilfe
    [VBA] PDF laden und bestimte dinge finden: Hallo zusammen, ich würde gerne mit den VBA Mitteln (ohne Drittprogramme) ein PDF einlesen und in dem Text mir dann bestimmte Dinge suchen, die sollten alle gleich aufgebaut sein die PDF`s. Ich...
  3. Excel VBA - Zellinhalte anhand von Spaltenüberschriften finden und kopieren

    in Microsoft Excel Hilfe
    Excel VBA - Zellinhalte anhand von Spaltenüberschriften finden und kopieren: Hi zusammen, Ihr konntet mir bisher immer so super helfen, da setze ich schwer auf euren erneuten support :-) Folgende Situation: Ich habe eine Arbeitsmappe(Beispiel beigefügt) mit mehreren...
  4. VBA: Text in Aktiver Zelle finden

    in Microsoft Excel Hilfe
    VBA: Text in Aktiver Zelle finden: Hallo, ich suche nach einer einfachen Textzeile, die überprüft, ob ein bestimmtes Wort in der aktiven Zelle hinterlegt ist. Wie folgt geht das schon: If ActiveCell = "Textbeispiel" Then...
  5. VBA - Leere Zeile im Bereich finden und beschreiben

    in Microsoft Excel Hilfe
    VBA - Leere Zeile im Bereich finden und beschreiben: Hallo, Ich bin noch Neu hier und finde leider seit ein paar Tagen keine Lösung im Netz für mein Problem. Muss auch dazu sagen das ich auch neu mit Makro anfange. Vielleicht könnt Ihr mir helfen....
  6. VBA: Variable Anzahl Zeilen mit Suchkriterien finden und kopieren

    in Microsoft Excel Hilfe
    VBA: Variable Anzahl Zeilen mit Suchkriterien finden und kopieren: Hallo zusammen, ich konnte bislang nur bruchstückhafte Ansätze zu meinem Problem finden, jedoch keinen um mehrere Kriterien zu erfassen und anschließend zu ordnen, daher brauche ich (mal wieder)...
  7. VBA duplikate finden und auf Kriterien prüfen

    in Microsoft Excel Hilfe
    VBA duplikate finden und auf Kriterien prüfen: Liebe Excel Gemeinschaft Ich möchte gerne mit VBA code Doppelte Einträge finden und 2 Kriterien sollen Geprüft werden un anderen spalte. Zu guter letzte sollte in einer weiter die...
  8. Zelle Aktivieren

    in Microsoft Excel Hilfe
    Zelle Aktivieren: Hallo Excelfreunde, ich habe schon wieder eine Frage. Ich habe ein Tabellenblatt("Übersicht"), in der befindet sich eine Tabelle. In der Range E:E, stehen Namen. Nun möchte ich in einer Zelle...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden