Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
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
Inhaltsverzeichnis

Vergleichen

Vergleichen
21.10.2015 10:17:36
Imran
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleichen
21.10.2015 11:58:07
Imran
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.

AW: Vergleichen
21.10.2015 11:23:04
ChrisL
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

Anzeige
AW: Vergleichen
21.10.2015 12:02:14
Imran
Muss ich dann also Zeile als String definieren ?

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige