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

doppelte Find-Methode

doppelte Find-Methode
14.03.2007 15:07:06
Sophie
Hallo zusammen,
bekomme folgendes nicht gebacken:
With Workbooks("Mappe1.xls").Sheets("Daten").Range("A:A")
Set c = .Find(What:=Merkmalnummer(j), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
firstaddress = c.Address
Do
Zeile = c.Row
b = Workbooks("Mappe1.xls").Sheets("Daten").Range("A1:A" & Zeile).Find(What:="First", SearchDirection:=xlPrevious).Row
For Hilfszähler = 10 To 253 Step 3
'wenn Spalte keine Daten mehr vorhanden dann Schleife verlassen
If Cells(b, Hilfszähler) = 0 Then Exit For
'Abfrage ob Zelle einen Wert enthält
If Cells(Zeile, Hilfszähler - 1) "" Then
'Werte auslesen
Workbooks("Mappe2").Sheets("Tabelle1").Cells(aa, bb) = Cells(b, Hilfszähler)
Workbooks("Mappe2").Sheets("Tabelle1").Cells(aa, bb + 4) = Cells(Zeile, Hilfszähler -1)
End If
aa = aa + 1
Next Hilfszähler
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstaddress
End If
End With
Das Problem ist, beim Start werden noch durch die Find-Methode zwei verschiedene Zeilen gefunden, das auch immer der Fall sein soll. Wenn ich nun zu FindNext komme, wird nicht mehr nach der Merkmalnummer gesucht, sonder zweimal nach dem String "First".
Wie bekomme ich das hin?
Für Eure Hilfe wäre ich Euch sehr dankbar.
Gruß Sophie

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: doppelte Find-Methode
14.03.2007 19:44:00
Erich
Hallo Sophie,
ein Weg wäre, nicht mit FindNext, sondern immer mit Find zu arbeiten und den Suchbereich einzuschränken.
Das könnte etwa so aussehen (ungetestet und nicht optimiert):

Sub tst()
Set rngA = Workbooks("Mappe1.xls").Sheets("Daten").Range("A:A")
Set c = rngA.Find(What:=Merkmalnummer(j), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
firstaddress = c.Address
Do
Zeile = c.Row
b = Workbooks("Mappe1.xls").Sheets("Daten").Range("A1:A" & Zeile).Find( _
What:="First", SearchDirection:=xlPrevious).Row
For Hilfszähler = 10 To 253 Step 3
'wenn Spalte keine Daten mehr vorhanden dann Schleife verlassen
If Cells(b, Hilfszähler) = 0 Then Exit For
'Abfrage ob Zelle einen Wert enthält
If Cells(Zeile, Hilfszähler - 1)  "" Then
'Werte auslesen
Workbooks("Mappe2").Sheets("Tabelle1").Cells(aa, bb) = Cells(b, Hilfszähler)
Workbooks("Mappe2").Sheets("Tabelle1").Cells(aa, bb + 4) = _
Cells(Zeile, Hilfszähler - 1)
End If
aa = aa + 1
Next Hilfszähler
Set rngA = Workbooks("Mappe1.xls").Sheets("Daten").Range("A" & Zeile + 1 & ":A65536")
Set c = rngA.Find(What:=Merkmalnummer(j), LookIn:=xlValues, lookat:=xlWhole)
'        Set c = .FindNext(c) ' funzt nicht
Loop While Not c Is Nothing And c.Address  firstaddress
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: doppelte Find-Methode
18.03.2007 17:26:10
Sophie
Hallo Erich,
Sorry, daß es solange gedauert hat.
Dein Vorschlag funktioniert super.
Nur der Ausstieg (Loop While Not c Is Nothing And c.Address firstaddress) brachte eine Fehlermeldung.
Hab das Problem gelöst indem ich zuvor eine If - Anweisung geschrieben habe.
"If c is nothing then exit do"
Schönen Gruß
Sophie

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige