Hallo zusammen :)
Ich schreibe mir gerade ein Makro, welches Daten in ein neues Tabellenblatt importiert. Daraufhin sollen alle Tabellenblätter der Mappe durchlaufen werden und geprüft werden, ob die erste Zeile der soeben importierten Tabelle mit der ersten Zeile einer bereits vorhandenen Tabelle übereinstimmt. Falls ja, sollen alle Werte aus Zeile 5 der importierten Tabelle in diese übereinstimmende Tabelle kopiert werden. Daraufhin kann die importierte Tabelle gelöscht werden. Falls keine Übereinstimmung gefunden wird, bleibt die importierte Tabelle einfach unverändert bestehen.
Ich rufe diese Sub aus einer anderen heraus auf. Daher bezieht sich ActiveWorksheet auf die importierte Tabelle.
Das ist mein (fehlerhafter) Ansatz, leider komme ich nicht mehr wirklich weiter.
Kann mir jemand weiterhelfen`?
Unglücklich bin ich auch mit "Worksheets(x)", da Excel die Tabellenblätter teilweise in der falschen Reihenfolge anordnet (Bsp. Tabelle 12 - 11 - 15 -10). Somit könnte es passieren, dass das Tabellenblatt gegen sich selbt geprüft wird. Weiß hier jemand eine bessere Lösung?
Sub Abgleich_mit_bereits_Importierten()
Dim ActiveWS As Worksheet, x As Integer, y As Integer
Set ActiveWS = ActiveSheet
For x = 1 To ActiveWorkbook.Sheets.Count - 1 Step 1
For y = 1 To 256
If ActiveWS.Cells(1, y) <> Worksheets(x).Cells(1, y) Then
Exit For
End If
Next y
ActiveWS.Rows(5).Copy
ActiveWorkbook.Sheets(x).UsedRange.SpecialCells(xlCellTypeLastCell).Row.Paste
ActiveWS.Delete
Next x
End Sub
Liebe Grüße
Jana
|