Zellenvergleich in Schleife abarbeiten
13.08.2007 16:52:56
Claudia
ich kenne mich nicht allzugut mit Excel VBA aus, möchte aber einen relativ komplexen Zellenvergleich durchführen:
Mein Tabellenblatt (Ziel) schaut so aus:
Spalte A Spalte B Spalte G
Prod1 Ereignisse Ereignisse
Aktion2 Aktion2
Aktion3 Aktion3
Prod2 Ereignisse Ereignisse
Aktion2 Akt5
Aktion3 lkjkljkl
Aktion4 kljkljkljk
Prod3 Ereignisse Ereignisse
Aktion2 Aktion2
Dort kommen nun Daten aus 50 verschiedenen Dateien herein - der Code besteht - klappt ohne Probleme - auch mit letzter Zeile auslesen und falls die Bereiche unterschiedliche Zeilen haben, wird immer die größere Zeilenanzahl als Maßgabe genommen und bis zur grösseren Anzahl Leerzeilen eingefügt bis zum nächsten Produkt.
Nun möchte ich erreichen, dass Spalte B und Spalte G zeilenweise verglichen wird. Im Prinzip geht das auch - jetzt wird es kompliziert:
Wenn sich in Zeile 3 etwas geändert hat, soll er an dieser Stelle alles eine Zeile nach unten schieben (nur die Werte von Zeile G versteht sich und nur in dem Bereich des Produktes (beispielsweise von Prod2 von Bereich Ereignisse bis zur letzten Zeile vor Ereignisse) so, dass dort eine leere Zelle erscheint...
Mein bisheriger Code:
'--- Vergleicht die Spalte B des Tabellenblattes 1 mit der Spalte G des Tabelenblattes 1 und
Dim i As Integer, j As Integer
'--- Festlegen der Variabeln
EndeB = Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).row
'--- legt das Ende des ersten Bereiches fest
EndeG = Worksheets("Tabelle1").Cells(Rows.Count, 7).End(xlUp).row
'--- legt das Ende des zweiten Bereiches fest
For i = 3 To EndeB
'--- beginnt bei Zelle 1 und hört bei der letzten ausgefüllten Zelle des Bereiches auf
For j = 3 To EndeG
If Sheets("Tabelle1").Cells(i, 2) Sheets("Tabelle1").Cells(j, 7) Then
'--- wenn nicht finden gelöscht - Leer auf rechter Seite
Dim gesucht As String
Dim z As Integer
gesucht = Sheets("Tabelle1").Cells(i, 2)
For z = 3 To EndeG
MsgBox ("hier eine Zeile nach unten verschieben, wenn nicht gefunden")
Next z
Else
'Sheets("Tabelle1").Cells(j, 2).Interior.ColorIndex = 25
'--- Fortsetzen der Schleife
End If
Next j
Next i
Ich hoffe, es kann mir jemand weiterhelfen!