Hallo allerseids,
ich habe eine Exceltabelle die aus mehreren Sheets besteht. Ich moechte alle diese sheets in einem gesonderten sheet sozusagen einem Mastersheet zusammenfuehren per Makro, dazu habe nach langer zeit mit Google folgenden Code gefunden.
Sub Bereichkopieren()
Dim LetzteZeile As Long
Dim QuellWB As Workbook
Dim ZielWB As Workbook
’ Objektvariablen, die auf die Quellendatei
’ bzw. die Zieldatei zeigen. Für Testzwecke beide=Activeworkbook
’ Variablenbelegung muss angepasst werden.
Set QuellWB = ActiveWorkbook
Set ZielWB = ActiveWorkbook
’ Quelltabelle aktivieren
QuellWB.Sheets(„calibur“).Activate
’ letzte benutze Zeile ermitteln
LetzteZeile = Range(„A65535“).End(xlUp).Row
’ benutzten Bereich kopieren (ab Zeile 2)
Range(„A177“, „R“ & LetzteZeile).Copy
’ Zieltabelle aktivieren
ZielWB.Sheets(„Sheet4“).Activate
’ erste freie Zelle in Spalte A selektieren
Range(„A65535“).End(xlUp).Offset(1, 0).Select
’ Inhalt der Zwischenablage einfügen
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
’ erste freie Zelle in Spalte A selektieren
’ (nur zum Aufräumen)
Range(„A65535“).End(xlUp).Offset(1, 0).Select
End Sub
der funktioniert soweit auch ganz gut (ist zum testen erstmal nur fuer 1sheet). nur kopiert er die Daten halt auch doppelt wenn man ihn doppelt ausfuehrt.
zum entfernen der duplikate habe ich diesen code gefunden und gebastelt:
Sub DoppelteSätzeRauswerfen()
'zuerst sortieren
Columns(„A:A“).Select
Selection.Sort Key1:=Range(„A1“), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'jetzt doppelte Sätze rausschmeißen
Range(„A“).Select
Do Until ActiveRow.Value = ActiveRow.Offset(1, 0)
If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
dieser sucht die Duplikate nun aber nur in der ersten spalte und wenn er eins findet loescht er die ganze zeile. Es soll aber die ganze Zeile ueberprueft werden und nur dann geloescht werden, wenn die komplette Zeile ein duplikat ist. Ich komm da irgendwie nicht weiter, vielleicht gibts hier ja jemanden der ein wenig helfen kann.
P.S. ich habe nicht wirklich VBA kentnisse, also bitte die Antwort fuer dumme : ).
Gruss Danny