Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige