Suchfunktion, Fehlermeldung funktioniert nicht richtig

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Ratisbona.

    Suchfunktion, Fehlermeldung funktioniert nicht richtig

    Hallo zusammen,

    bin in VBA eher ein Anfänger und hoffe jemand kann mir helfen. Ich habe ein Excel-Sheet. Ich habe ein UserForm, das jeweils

    die Eingabe mit der Spalte "B" vergleicht und dann alle Infos die in diese Zeile stehen in ein weiteres Userform ausgibt. Allerdings

    weiß ich nicht wie ich die Fehlermeldung einbauen soll. So wie "Name wurde nicht gefunden". Ich habe das Problem, das ich

    immer wieder in meine Fehlerfunktion "reinlaufe" Kann mir jemand helfen? Irgendwie funzt das auch nicht so ganz, da er immer
    nur erste Zeile des Sheets findet, die anderen findet er nicht! Wo liegt mein Fehler in dem Makro???

    Visual Basic-Quellcode

    1. Private Sub Suchen_Click()
    2. Dim i As String
    3. i = 2
    4. Set blatt = Worksheets("Tabelle1")
    5. Set blatt2 = Worksheets("Tabelle2")
    6. While blatt.Range("A" & i).Value <> ""
    7. If blatt.Range("B" & i).Value = TBName.Value Then GoTo Result Else GoTo fehler
    8. Result:
    9. ergebnis.l0 = blatt.Range("A" & i).Value
    10. ergebnis.l1 = blatt.Range("B" & i).Value
    11. ergebnis.l2 = blatt.Range("C" & i).Value
    12. ergebnis.l3 = blatt.Range("D" & i).Value
    13. ergebnis.l4 = blatt.Range("E" & i).Value
    14. ergebnis.l5 = blatt.Range("F" & i).Value
    15. ergebnis.l6 = blatt.Range("G" & i).Value
    16. ergebnis.l7 = blatt.Range("H" & i).Value
    17. ergebnis.l8 = blatt2.Range("C" & i).Value
    18. ergebnis.l9 = blatt2.Range("D" & i).Value
    19. ergebnis.l10 = blatt2.Range("E" & i).Value
    20. ergebnis.l11 = blatt2.Range("F" & i).Value
    21. ergebnis.l12 = blatt2.Range("G" & i).Value
    22. ergebnis.l13 = blatt2.Range("H" & i).Value
    23. ergebnis.l14 = blatt2.Range("I" & i).Value
    24. ergebnis.Show
    25. i = i + 1
    26. Wend
    27. Exit Sub
    28. fehler:
    29. MsgBox "Dieser Name konnte auf dem Tabellenblatt <" & ActiveSheet.Name & _
    30. "> nicht gefunden werden!"
    31. Exit Sub
    32. End Sub


    Alex


    Edit by Mad Andy:
    VB-Tag eingefügt. Bitte in Zukunfst selbst machen!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()

    Am besten legst du dir ne Boolsche Variable an und wenn du einen Treffer gefunden hast, setzt du diese auf True. Nachdem du alle Tabellen durchlaufen hast, kannst du dann deine Variable befragen und sollte diese immer noch False sein, springst du zu der Fehlermeldung.
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau