Suche, finde und dann aber nur wenn... VBA
20.05.2014 17:00:26
Thorben
könnt ihr mir bitte helfen den Code hier anzupassen, ich blicke nicht wo ich anpacken muss:
Es soll nur grün eingefärbt werden wenn für Set rSuche = rFinde.Find(what:=.Cells(I, 1), LookAt:=xlWhole) zusätzlich Offset(0,1) = "" Wahr ist.
QuellCode ist ausm WWW, angepasst und lüppt soweit.
Krieg das nicht hin.
Danke schon mal und
MfG
Thorben
Sub check()
Dim rFinde As Range, rSuche As Range ' das ist mal eine einfache Variablendeklaration
Dim strFirst As String
Dim lngReihe As Long, lngLetzte As Long
Dim I As Integer
With Workbooks("Daten.xlsm").Sheets("Hinweise")
lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
_
Count) 'letzte volle Zeile in Sheet* ermitteln, da stehen die Suchstrings in den Zeilen von _
Spalte a
End With
Set rFinde = Sheets("Suche").Range("A:A") ' wo soll gesucht werden, naja, in Spalte A _
Sheet*, da stehen die zu vergleichenden Werte
With Workbooks("Daten.xlsm").Sheets("Hinweise")
For I = 2 To lngLetzte ' Suchschleife, da ja mehr als nur ein Suchwert
Set rSuche = rFinde.Find(what:=.Cells(I, 1), LookAt:=xlWhole) ' .cells.. ist der _
jeweilige Suchwert
If Not rSuche Is Nothing Then ' wenn, was gefunden wurde
strFirst = rSuche.Address ' merke dir die erste gefundene Zelle (weil können ja _
mehr sein)
Do ' weiter Schleife, um die anderen gleichen zu finden
lngReihe = rSuche.Row ' wir merken uns die Zeile wo in Sheet* der Suchstring _
steht
Sheets("Suche").Range("A" & lngReihe).Cells.Interior.ColorIndex = 4 'Zelle _
einfärben
Set rSuche = rFinde.FindNext(rSuche) ' wir suchen den nächsten, gleichen _
Suchstring
Loop While Not rSuche Is Nothing And rSuche.Address strFirst 'das tun wir _
solange, bis wir wieder bei der ersten Adresse sind und somit alle gefunden wurden.
End If
Next I
End With
Sheets("Suche").Select
MsgBox ("Fertig!")
End Sub