Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
592to596
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
592to596
592to596
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehlerbehandlung bei Find

Fehlerbehandlung bei Find
07.04.2005 12:18:54
werner
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlerbehandlung bei Find
07.04.2005 12:20:16
Lars
Hi,
On Error Resume Next
mfg Lars
AW: Fehlerbehandlung bei Find
07.04.2005 12:54:14
werner
Hallo Lars,
damit geht es leider nicht zum nächsten Find-Befehl weiter, wie es nötig wäre ..
trotzdem Danke
W.
AW: Fehlerbehandlung bei Find
07.04.2005 12:54:50
werner
Hallo Lars,
damit geht es leider nicht zum nächsten Find-Befehl weiter, wie es nötig wäre ..
trotzdem Danke
W.
AW: Fehlerbehandlung bei Find
07.04.2005 13:02:38
Lars
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
Anzeige
AW: Fehlerbehandlung bei Find
07.04.2005 13:33:17
werner
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
AW: Fehlerbehandlung bei Find
07.04.2005 14:41:08
Volker
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
Anzeige
erst mal danke - probier ich später aus oT
07.04.2005 16:27:55
werner
x
AW: erst mal danke - probier ich später aus oT
07.04.2005 17:20:10
Kurt
...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
AW: erst mal danke - probier ich später aus oT
07.04.2005 17:24:15
Volker
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige