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

Suchen bis Zeilenende

Suchen bis Zeilenende
28.11.2006 08:45:42
Metman
Guten Morgen,
ich habe innerhalb einer Schleife eine while...wend schleife eingebaut die mir ein Wert überprüft.
http://img223.imageshack.us/my.php?image=unbenanntyg3.jpg
So siehts aus im worksheet("datenbasis").
Die erste schleife sucht nach den Werten in Spalte B, wenn sie gefunden wurde ist es grün, sonst rot. Das wurde mit Countif realisiert.
Mein Problem ist Spalte C und D.
Wenn in Spalte D eine 1(oder 2 oder 3. kommt später) drin ist, sucht er in einem anderen Worksheet ("imported) in Spalte D nach dem Wert zbsp. 18FEDF00 und dann überprüft er mit einem Offset(0,4) in Spalte H ob der Wert größer 0 und kleiner FF ist, wenn ja, wird es grün eingefärbt.
Funktioniert!!
So, mein Problem ist das er den ersten Wert in dem 18FEDF00 enthalten ist überprüft, aber nicht danach. Das verfälscht meine Analyse
hier mal der Code
i = 1
While (wksDB.Cells(lngZeileD, 3).Offset(i, 0) "")
If wksDB.Cells(lngZeileD, 4).Offset(i, 0).Value = "1" And wksDB.Cells(lngZeileD, 5).Offset(i, 0) = 0 Then
With Worksheets("imported").Range("D:D")
Set rangeFindID = .Find(strIdentifier)
If Not rangeFindID Is Nothing Then
If rangeFindID.Offset(0, 4).Value > "0" And rangeFindID.Offset(0, 4) wksDB.Cells(lngZeileD, 3).Offset(i, 0).Interior.ColorIndex = 4
wksDB.Cells(lngZeileD, 4).Offset(i, 0).Interior.ColorIndex = 4
Else
wksDB.Cells(lngZeileD, 3).Offset(i, 0).Interior.ColorIndex = 3
wksDB.Cells(lngZeileD, 4).Offset(i, 0).Interior.ColorIndex = 3
End If
End If
End With
End If
i = i + 1
Wend
Meine Idee is eine Do...loop while schleife aber ich weiß nich wie ich dem programm sagen soll das er bis zum ende suchen soll (20000 zeilen).
hat jemand ne bessere IDee?
gruß

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen bis Zeilenende
28.11.2006 11:32:09
Metman
Ok
also eine if konstruktion passt da nun überhaupt nicht.
Er soll sooolange suchen bis .&lt "FF" is,dann grün einfärben, wenn = "FF" is rot einfärben
mal schaun ob ich das hinkriege
AW: Suchen bis Zeilenende
28.11.2006 11:53:39
Metman
i = 1
While (wksDB.Cells(lngZeileD, 3).Offset(i, 0) &lt&gt "")
If wksDB.Cells(lngZeileD, 4).Offset(i, 0).Value = "1" And wksDB.Cells(lngZeileD, 5).Offset(i, 0) = 0 Then
With Worksheets("imported").Range("D:D")
Set rangeFindID = .Find(strIdentifier)
If Not rangeFindID Is Nothing Then
ersterWert = rangeFindID.Row
Do
Set rangeFindID = .FindNext(rangeFindID)
wert = rangeFindID.Row
If rangeFindID.Offset(0, 4) &lt "FA" Then
wksDB.Cells(lngZeileD, 3).Offset(i, 0).Interior.ColorIndex = 4
wksDB.Cells(lngZeileD, 4).Offset(i, 0).Interior.ColorIndex = 4
Else
wksDB.Cells(lngZeileD, 3).Offset(i, 0).Interior.ColorIndex = 3
wksDB.Cells(lngZeileD, 4).Offset(i, 0).Interior.ColorIndex = 3
End If
Loop While Not rangeFindID Is Nothing
End If
End With
End If
i = i + 1
Wend
so sollte es gehen, bringt mir aber ne Fehlermeldung.
Sieht jemand das Problem?
Anzeige
AW: Suchen bis Zeilenende
28.11.2006 15:24:47
Metman
i = 1
While (wksDB.Cells(lngZeileD, 3).Offset(i, 0) &lt&gt "")
'//-----------------------------------------------------------------//
If wksDB.Cells(lngZeileD, 4).Offset(i, 0).Value = "3" And wksDB.Cells(lngZeileD, 5).Offset(i, 0) = 0 Then
'//-----------------------------------------------------------------//
With Worksheets("imported").Range("D:D")
Set rangeFindID = .Find(strIdentifier)
Do
If Not rangeFindID Is Nothing Then
ersterWert = rangeFindID.Row
If rangeFindID.Offset(0, 5) &lt "FF" Then
wksDB.Cells(lngZeileD, 3).Offset(i, 0).Interior.ColorIndex = 4
wksDB.Cells(lngZeileD, 4).Offset(i, 0).Interior.ColorIndex = 4
Exit Do
Else
wksDB.Cells(lngZeileD, 3).Offset(i, 0).Interior.ColorIndex = 3
wksDB.Cells(lngZeileD, 4).Offset(i, 0).Interior.ColorIndex = 3
Set rangeFindID = .FindNext(rangeFindID)
'wert = rangeFindID.Row
End If
End If
'//-----------------------------------------------------------------//
Loop While ((Not rangeFindID Is Nothing) And (Worksheets("imported").Range("D:D").End(xlUp).Row &lt 20000))
End With
'//-----------------------------------------------------------------//
End If
i = i + 1
'//-----------------------------------------------------------------//
Wend
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige