Vergleichen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: Vergleichen
von: Imran
Geschrieben am: 21.10.2015 10:17:36

Hallo Community :)
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

Bild

Betrifft: AW: Vergleichen
von: Tino
Geschrieben am: 21.10.2015 11:23:03
Hallo,
kannst mal testen.
https://www.herber.de/bbs/user/100932.xlsm
Gruß Tino

Bild

Betrifft: AW: Vergleichen
von: Imran
Geschrieben am: 21.10.2015 11:58:07
In der Beispieldatei funktioniert der Code. Aber nicht in meiner Datei, wo ich es anwenden möchte. Bei Ausführung des Makros passiert nichts..
Woher weiß dein Code, welche Tabellen verglichen werden ? Ich habe nämlich noch mehrere Tabellen in meiner Arbeitsmappe. Und werden hier direkt Zeilen miteinander verglichen, oder die Werte innerhalb der Spalten ? Ich komme da grad nicht ganz hinter.

Bild

Betrifft: AW: Vergleichen
von: ChrisL
Geschrieben am: 21.10.2015 11:23:04
Hi Imran
Die Zeile und Spalte haben den Wert 2 d.h. du sprichst Zelle B2 an. In diesem Feld steht Text (Bezeichnung). Die Variable ist aber als Integer (also Zahl) deklariert.
cu
Chris

Bild

Betrifft: AW: Vergleichen
von: Imran
Geschrieben am: 21.10.2015 12:02:14
Muss ich dann also Zeile als String definieren ?

Bild

Betrifft: AW: Vergleichen
von: ChrisL
Geschrieben am: 21.10.2015 12:59:30
Nein, den Titel willst du ja kaum vergleichen. Beginne in Zeile 3 statt 2.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Vergleichen"