Hallo liebes VBAForum,
ich bin ein blutiger VBA-Anfänger und weiß teilweise gar nicht, was ich tue. Mühsam habe ich ein Programm gebaut (danke, Herber.de!) welches nach dem Start eine Userform öffnet, in der man zwei Tabellen öffnen kann, die einmal in "Tabelle 1" und einmal in "Tabelle 2" geöffnet werden. Durch einen dritten Button lassen sich die Daten miteinander vergleichen und Unterschiede werden farblich markiert.
Das klappt soweit gut, aber es werden ganze Zeilen markiert, ich möchte aber nur, dass die jeweiligen Zellen markiert werden. "Rows" durch "Cells" ersetzen habe ich schon versucht. Leider bin ich nun an der Grenze meines "Wochend-Seminar-Wissens". Danke im Voraus!
Hier der Code erstmal für das importieren:
Private Sub CommandButton3_Click()
Dim ImportDatei As Variant
Dim wbImport As Workbook
ImportDatei = Application.GetOpenFilename(FileFilter:="Microsoft Excel-Dateien (*.xls; *.xlsx; *.xlsm),*.xls; *.xlsx; *.xlsm", Title:="Eine Datei auswählen")
If ImportDatei = False Then Exit Sub
Set wbImport = Workbooks.Open(ImportDatei)
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Windows("Vergleich.xlsm").Activate
Sheets("Alt").Select
Cells.Select
ActiveSheet.Paste
End Sub
----------------------------------------
Und hier der Code für den Vergleich:
Private Sub CommandButton2_Click()
Dim rng As Range
Dim lRow As Long, lRowT As Long
Dim iCol As Integer
Dim bln As Boolean
Set rng = Worksheets("Alt").Range("A1").CurrentRegion
Sheets("Aktuell").Activate
For lRow = 1 To Range("A1").CurrentRegion.Rows.Count
bln = True
For lRowT = 1 To rng.Rows.Count
For iCol = 1 To 400
If Cells(lRow, iCol) <> rng(lRowT, iCol) Then
bln = False
Exit For
End If
Next iCol
If bln = True Then
Exit For
ElseIf lRowT < rng.Rows.Count Then
bln = True
End If
Next lRowT
If bln = False Then
Range(Cells(lRow, 1), Cells(lRow, 400)).Interior.ColorIndex = 6
'Range(Cells(lRow, iCol), Cells(lRow, iCol)).Interior.ColorIndex = 6
End If
Next lRow
Range("A1").Select
Unload Me
End Sub
P.S.: Wie kann ich dann noch erreichen, dass wenn ich eine Mappe öffne, diese aber aus mehreren Tabellenblätter besteht, ich alle Seiten importieren kann?
|