Fehlerbehandlung bei Find

Bild

Betrifft: Fehlerbehandlung bei Find
von: werner h.
Geschrieben am: 07.04.2005 12:18:54
Hallo zusammen,
ich stehe gerade auf dem Schlauch, obwohl es sicher ganz einfach ist: Ich lasse in einer Spalte nach insgesamt 5 namen suchen - wenn einer der Namen in dieser Spalte nicht vorhandem ist, kommt natürlich eine Fehlermeldung - wie kann ich die vermeiden bzw. die Suche beim nächsten Namen fortsetzen?

Range("c1:c18").Find("Name1").Select
Range(ActiveCell, ActiveCell.Offset(0, 1)).Cut
Range("c23:d23").Insert Shift:=xlDown

Range("c1:c18").Find("Name2").Select
Range(ActiveCell, ActiveCell.Offset(0, 1)).Cut
Range("c23:d23").Insert Shift:=xlDown
Range("c1:c18").Find("Name3").Select .....

Danke für eure Mühe und grüße
Werner

Bild

Betrifft: AW: Fehlerbehandlung bei Find
von: Lars
Geschrieben am: 07.04.2005 12:20:16
Hi,
On Error Resume Next
mfg Lars
Bild

Betrifft: AW: Fehlerbehandlung bei Find
von: werner h.
Geschrieben am: 07.04.2005 12:54:14
Hallo Lars,
damit geht es leider nicht zum nächsten Find-Befehl weiter, wie es nötig wäre ..
trotzdem Danke
W.
Bild

Betrifft: AW: Fehlerbehandlung bei Find
von: werner h.
Geschrieben am: 07.04.2005 12:54:50
Hallo Lars,
damit geht es leider nicht zum nächsten Find-Befehl weiter, wie es nötig wäre ..
trotzdem Danke
W.
Bild

Betrifft: AW: Fehlerbehandlung bei Find
von: Lars
Geschrieben am: 07.04.2005 13:02:38
Hi,
kaum vorstellbar, dann versuchs mal so:
On error resume next
Range("c1:c18").Find("Name1").Select
Range(ActiveCell, ActiveCell.Offset(0, 1)).Cut
Range("c23:d23").Insert Shift:=xlDown
err.clear
On error resume next
Range("c1:c18").Find("Name2").Select
Range(ActiveCell, ActiveCell.Offset(0, 1)).Cut
Range("c23:d23").Insert Shift:=xlDown
err.clear
usw.....
Range("c1:c18").Find("Name3").Select .....
mfg Lars
Bild

Betrifft: AW: Fehlerbehandlung bei Find
von: werner h.
Geschrieben am: 07.04.2005 13:33:17
Hallo lars,
ist leider nach wie vor so; wird ein Name nicht gefunden, geht´s zur nächsten zeile im Code und in der Tabelle werden falsche Zellen ausgeschnitten - scheint mir eigentlich mit meinen bescheidenen Kenntnissen nicht nur vorstellbar, sondern sogar logisch zu sein??
Grüße
Werner
Bild

Betrifft: AW: Fehlerbehandlung bei Find
von: Volker
Geschrieben am: 07.04.2005 14:41:08
Hallo Werner,
on error goto war schon richtig, aber nicht to next. Da überspringt er wirklich nur die Fehlerproduzierende Zeile
Du kannst aber auch eine Art Sprungmarke definieren, ähnlich wie beim guten alten Basic mit dem "Goto "
Die Sprungmarke kannst Du beliebig benennen:

Sub Makro3()
On Error GoTo weiter2
Range("c1:c18").Find("Name1").Select
Range(ActiveCell, ActiveCell.Offset(0, 1)).Cut
Range("c23:d23").Insert Shift:=xlDown
weiter2:
Err.Clear
On Error GoTo weiter3
Range("c1:c18").Find("Name2").Select
Range(ActiveCell, ActiveCell.Offset(0, 1)).Cut
Range("c23:d23").Insert Shift:=xlDown
weiter3:
Err.Clear
On Error GoTo weiter4
ActiveSheet.Range("c1:c18").Find("Name3").Select
Range(ActiveCell, ActiveCell.Offset(0, 1)).Cut
Range("c23:d23").Insert Shift:=xlDown
weiter4:
....usw......
End Sub

Das mit dem err.Clear kannte ich zwar noch nicht, scheint aber nötig zu sein.
Gruß
Volker
Bild

Betrifft: erst mal danke - probier ich später aus oT
von: werner h.
Geschrieben am: 07.04.2005 16:27:55
x
Bild

Betrifft: AW: erst mal danke - probier ich später aus oT
von: Kurt
Geschrieben am: 07.04.2005 17:20:10
...mir kräuseln sich langsam die Fussnägel in diesem ehemalig ganz kompetentem Forum

Sub test()
Dim arr
Dim c As Range
Dim i As Integer
arr = Array("Name1", "Name2", "Name3")
For i = LBound(arr) To UBound(arr)
Set c = Range("c1:c18").Find(arr(i))
If Not c Is Nothing Then
Range(Cells(c.Row, c.Column), Cells(c.Row, c.Column + 1)).Cut
Range("c23:d23").Insert Shift:=xlDown
End If
Next i
End Sub

...und Tschüss Kurt
Bild

Betrifft: AW: erst mal danke - probier ich später aus oT
von: Volker
Geschrieben am: 07.04.2005 17:24:15
Wenn Du doch ach so kompetent bist, warum schreitest Du nicht früher ein.
Aber zugegeben, Deine Lösung ist ein wenig eleganter.
auch tschüss
Volker
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Kombination von S- und WVerweis "