1.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo ich habe als Makro folgenden Befehl:

zeile = Sheets("Tabelle1").Cells.Find(What:=suchkriterium, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row

was ich machen will ist:
Die Zellen in Tabelle 1 in Rot, Gelb und Grün zu markieren.
Bedingung soll der wert sein, der in Tabelle 2 in der spalte 16 steht. Eine Beziehung zu dem Wert kann ich durch den Text in der Zelle "Tabelle1" und Text der "Tabelle2" Spalte 6 aufbauen.

Problem bei der suchfunktion ist, dass wenn ein text nich gefunden wurde.
Wie kann ich das übergehen, so dass die Celle einfach garnicht markiert werden soll?

4 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Unbkannter,

schreibe Set Zeile =
If not Zeile is Nothoting Then ' gefunden
Zeile am Ende des Code leere
Set Zeile=Nothing

Gruß Hajo
0 Punkte
Beantwortet von
danke für deine schnelle Antwort..

meine Versuche haben leider einen Laufzeitfehler 13 herbeigerufen.

suchkriterium = Sheets("Tabelle1").Cells(e, i).Value
Set Zeile = Sheets("Tabelle2").Cells.Find(What:=suchkriterium).Row
If Not Zeile Is Nothoting Then

If Sheets("Tabelle2").Cells(Zeile, 16).Value = "" Then
Else
If Sheets("Tabelle2").Cells(Zeile, 16).Value < -0.5 Then
Sheets("Tabelle1").Cells(e, i).Interior.Color = 192
Else
If Sheets("Tabelle2").Cells(Zeile, 16).Value < 0.5 Then
Sheets("Tabelle1").Cells(e, i).Interior.Color = 65535
Else
Sheets("Tabelle1").Cells(e, i).Interior.Color = 52224
End If
End If
End If
End If
End If
Set Zeile = Nothing

Was muss denn da geändert werden?
denke auch das ich das bisschen zu umständlich gemacht habe, aber anders bekomme ich es leider nicht hin..

Danke für deine Hilfe.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Unbekannter,

Option Explicit

Sub unbekannter()
Dim E As Long
Dim I As Integer
Dim suchkriterium As String
Dim Zeile As Range
I = 2
E = 1
suchkriterium = Sheets("Tabelle1").Cells(E, I).Value
Set Zeile = Sheets("Tabelle2").Cells.Find(What:=suchkriterium)
If Not Zeile Is Nothing Then
If Sheets("Tabelle2").Cells(Zeile, 16).Value <> "" Then
If Sheets("Tabelle2").Cells(Zeile.Row, 16).Value < -0.5 Then
Sheets("Tabelle1").Cells(E, I).Interior.Color = 192
Else
If Sheets("Tabelle2").Cells(Zeile.Row, 16).Value < 0.5 Then
Sheets("Tabelle1").Cells(E, I).Interior.Color = 65535
Else
Sheets("Tabelle1").Cells(E, I).Interior.Color = 52224
End If
End If
End If
End If
Set Zeile = Nothing
End Sub

Gruß Hajo
0 Punkte
Beantwortet von
vielen Dank funktioniert. :-)
...