VBA: Selection.Find; was ist wenn nichts gefunden wird?

08/01/2009 - 16:25 von Peter Wenzel | Report spam
Hallo NG,

Ich möchte gerne so eine Art Lieferschein erstellen.
Dazu habe ich in Tabelle1 eine Vorlage erstellt, und möchte von dort durch Auswahl von zB einer
Kundennummer die entsprechenden Artikel eintragen lassen.
Die Daten zu den Artikeln stehen in Tabelle2. In den Spalten F und H stehen die Angaben der KdNr.
Diese kann dort jeweils mehrfach vorkommen, aber nicht zwingend überhaupt.
Damit ihr euch nicht wundert, meine Beschreibung zu KdNr etc. ist nur Beispielhaft, es geht mir um
die Vorgehensweise, die reale Anwendung wàre jetzt zu aufwàndig zu erklàren.

Wenn ich nun im Lieferschein eine Kundennummer auswàhle, lasse ich mittels VBA die Daten erst in
Spalte F dann in Spalte H durchsuchen, und die dazugehörigen Werte in den Lieferschein eintragen.

'strSuch = Suchbegriff (String)
Columns("F:F").Select
Selection.Find(what:=strSuch, after:=ActiveCell, LookIn:=xlValues, lookat:=xlWhole).Activate

Dann über Offset lese ich die Werte.

Wie gesagt, der gesuchte Wert kommt nicht zwingend in der Spalte vor, daher bekomme ich einen
Fehler, dass die Blockvariable ... etc.

Wie kann ich erreichen, dass dieser Fehler nicht auftritt, sondern munter weitergesucht wird bis
fertig, und dann schluss?
Lassen sich auch zwei Spalten auswàhlen als Suchbereich?

Danke für eure Hilfe

Gruß
Peter


Excel 2003 SP 3
Bitte alle Antworten hier in die Newsgroup.
Mails nur nach Rücksprache zusenden.
 

Lesen sie die antworten

#1 Wolfgang Habernoll
08/01/2009 - 17:00 | Warnen spam
Hallo

"Peter Wenzel" schrieb im Newsbeitrag
news:
Hallo NG,

Ich möchte gerne so eine Art Lieferschein erstellen.
Dazu habe ich in Tabelle1 eine Vorlage erstellt, und möchte von dort durch Auswahl
von zB einer Kundennummer die entsprechenden Artikel eintragen lassen.
Die Daten zu den Artikeln stehen in Tabelle2. In den Spalten F und H stehen die
Angaben der KdNr.
Diese kann dort jeweils mehrfach vorkommen, aber nicht zwingend überhaupt.
Damit ihr euch nicht wundert, meine Beschreibung zu KdNr etc. ist nur Beispielhaft,
es geht mir um die Vorgehensweise, die reale Anwendung wàre jetzt zu aufwàndig zu
erklàren.

Wenn ich nun im Lieferschein eine Kundennummer auswàhle, lasse ich mittels VBA die
Daten erst in Spalte F dann in Spalte H durchsuchen, und die dazugehörigen Werte in
den Lieferschein eintragen.

'strSuch = Suchbegriff (String)
Columns("F:F").Select
Selection.Find(what:=strSuch, after:=ActiveCell, LookIn:=xlValues,
lookat:=xlWhole).Activate

Dann über Offset lese ich die Werte.

Wie gesagt, der gesuchte Wert kommt nicht zwingend in der Spalte vor, daher bekomme
ich einen Fehler, dass die Blockvariable ... etc.



ja wenn nichts gefunden wird kannst du auch nichts aktivieren, daher musst du es
vorher prüfen.
Wie kann ich erreichen, dass dieser Fehler nicht auftritt, sondern munter
weitergesucht wird bis fertig, und dann schluss?



versuche es mal so, wenn du die Meldung nicht brauchst lösche die Zeile.

Sub KNrFinden()
Dim rngFund As Range
Dim rngBereich As Range
Dim strSuch As String
Set rngBereich = Worksheets("Tabelle1").Range("F:H")

Set rngFund = rngBereich.Find(what:=strSuch, LookIn:=xlValues, lookat:=xlWhole)

If rngFund Is Nothing Then
MsgBox ("Kein Fund ")
Exit Sub
End If

rngFund.Activate

End Sub

Lassen sich auch zwei Spalten auswàhlen als Suchbereich?



siehe im Code Spalte F-H

mfG
Wolfgang Habernoll

[ Win XP Home SP-2 , XL2002 ]

Ähnliche fragen