Ich sitze grad an einem Code, der 2 Spalten aus 2 Tabellen vergleicht, und die Werte farbig markiert (in der M-Liste SW), die in Tabelle1 nicht vorkommen.
Das hier ist die Beispieldatei: https://www.herber.de/bbs/user/100928.xlsx
Und das ist der Code:
Option Explicit
Dim Tabelle1 As Worksheet
Dim Tabelle2 As Worksheet
Dim Zeile As Integer
Dim Material As String
Dim Spalte1 As Integer
Dim Spalte2 As Integer
Dim Gefunden As Variant
Dim TabName1 As String
Dim TabName2 As String
Dim Farbe As Boolean
Dim Platzhalter As Integer
Dim Zaehler As Integer
Sub Markieren()
TabName1 = InputBox("Name der Tabelle, in der markiert werden soll")
TabName2 = InputBox("Name der Tabelle ein, die geprüft werden soll")
Set Tabelle1 = ActiveWorkbook.Worksheets(TabName1)
Set Tabelle2 = ActiveWorkbook.Worksheets(TabName2)
'Weist den Variablen die Tabellenblätter 1 & 2 zu
Tabelle1.Activate
Spalte1 = InputBox("Spaltennummer von Tabelle 1")
'Abfragen der wichtigen Spalte von Tabellenblatt1
Spalte2 = InputBox("Spaltennummer von Tabelle 2")
'Abfragen der wichtigen Spalte von Tabellenblatt2
Zeile = 2
Zaehler = 0
Do While Tabelle1.Cells(Zeile, Spalte1).Value ""
'Schleife um alle Zeilen Der spalte in Blatt 1 zu duchlaufen
'bis eine leere Blattzeile im Datenbereich auftritt
Gefunden = ""
Farbe = False
Platzhalter = Cells(Zeile, Spalte1).Value
Tabelle2.Activate
Set Gefunden = Tabelle2.Columns(Spalte2).Find(Platzhalter)
If Gefunden Is Nothing Then
GoTo NichtsGefunden
Else
Farbe = True
Tabelle1.Activate
If Tabelle1.Cells(Zeile, Spalte1).Interior.Color vbGreen Then
If Farbe = True Then
Tabelle1.Cells(Zeile, Spalte1).Interior.Color = vbGreen
Zaehler = Zaehler + 1
Else
End If
Else
End If
NichtsGefunden:
End If
Tabelle1.Activate
Zeile = Zeile + 1
'Übergang zur nächsten Zeile
Loop
Tabelle1.Activate
Tabelle1.Cells(1, 1).Select
MsgBox ("Das Makro wurde ordnungsgemäß ausgeführt. Es wurden " & Zaehler & " Einträge markiert." _
_
)
End Sub
Wenn ich ihn ausführe, kommt ein Laufzeitfehler '13' und beim Debuggen wird mir "Platzhalter= Cells(Zeile, Spalte1).Value" markiert. Ich weiß leider nicht, was da der Fehler sein soll.
Wäre super,wenn mir jemand helfen könnte :)
Danke