Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Suche abbrechen wenn kein Treffer

Suche abbrechen wenn kein Treffer
02.05.2019 12:32:39
Daniel
Hallo VBA Profis
Ich habe eine Suchabfrage, die einwandfrei läuft. Nur wenn ich mich vertippe oder der Name nicht in der DB vorhanden ist soll die Suche abgebrochen werden.
Wie muss ich den Code ergänzen?
Set sheetDB = ThisWorkbook.Sheets("DB")
Set sheetSuche = ThisWorkbook.Sheets("Sheet")
suchwort = sheetSuche.Range("J1").Value 'nach dieser Zelle wird gesucht
zieleins = 10 '1 'erste Zielzeile (B25)
zielZwei = 2 'Spalte B
sheetDB.Select
sheetDB.Columns("B:B").Select 'hier stehen die Namen im DB Sheet
suche = Selection.Find(What:=suchwort, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
suchZeile = Application.ActiveCell.Row
letzteGefundeneZeile = 0 'erneutes Suchen vom Anfang verhindern
While suche = True And suchZeile > letzteGefundeneZeile
sheetSuche.Select
sheetSuche.Cells(zieleins, zielZwei).Value = sheetDB.Cells(suchZeile, 2).Value
zieleins = zieleins + 1
sheetDB.Select
letzteGefundeneZeile = suchZeile
Selection.FindNext(After:=ActiveCell).Activate
suchZeile = Application.ActiveCell.Row
Wend
Danke schon mal für eure Hilfe
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche abbrechen wenn kein Treffer
02.05.2019 13:56:37
Daniel
Hallo Daniel,
packe ein

If Not suche is Nothing then… 

davor. Bei Else kannst du dann Exit Sub sagen, oder eine MsgBox Nachricht einblenden oder was auch immer tun ;-)
Übrigens - bitte die Select Teile weglassen, die sind überflüssig. Stattdessen gleich
suche = sheetDB.Columns("B:B").Find(...
etc.
Gruß
Daniel
Anzeige
AW: Suche abbrechen wenn kein Treffer
02.05.2019 14:26:05
Daniel
Hi
du musst das Suchergebnis zunächt einer Rangevariable zuweisen, dies erzeugt keinen Fehler, wenn der Suchbegriff nicht gefunden werden kann.
dim rngFundStelle as range
set rngFundStelle = ...Find(what:=...)

wird der Suchbegriff nicht gefunden, wird die Rangevariable auf NOTHING gesetzt, was man abfragen kann, um dann im Code entsprechend zu reagieren:
if rngFundstelle is Nothing then
Msgbox "nichts gefunden"
Else
'--- hier der weiter Code wenn gefunden
'--- die Funstelle ist die Rangevariable
suchZeile = rngFundstelle.row
End if
Gruß Daniel
Anzeige
AW: Suche abbrechen wenn kein Treffer
02.05.2019 22:07:47
Daniel
Hallo Daniel
Meine VBA Kenntnisse sind dafür doch um einiges zu wenig. Ich bring Deinen Code nicht zum laufen. Bzw. ich weiss nicht genau was ich nun wo einbauen muss?
Dein Vorschlag aus dem ersten Post würde genau meinem Wunsch entsprechen. Wenn die Suche kein Ergebnis bringt dann soll eine MsgBox erscheinen.
Vielleicht kannst Du mir noch einmal "Schützenhilfe" leisten?
Gruss Daniel
Anzeige
;
Anzeige

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