Excel Worksheet per Makro kopieren?

Ich suche ein Makro, dass das aktuelle Worksheet vollständig kopiert (alle Daten & Formatierungen), welches in der gleichen Datei vor dem zu kopierenden Worksheet erstellt werden soll.
Wenn möglich soll ein Pop-Up Fenster erscheinen, in dem man den Namen des neuen, kopierten Worksheets eingeben kann.

Wie ich das Makro einem Button zuweise weiß ich schon :smile:
Danke für Eure Hilfe!

HALLO WUSELXY
Schade kann ich dir nicht weiterhelfen.

Hallo wuselxy,

folgende Funktion sollte dein Problem lösen:

'---------------------------------------
Public Sub CopyWorkSheet()

Dim wsSheetTemp As Worksheet
Dim strName As String

'Aktives Sheet kopieren
ActiveSheet.Select
ActiveSheet.Copy Before:=Sheets(ActiveSheet.Name)
'Neues Sheet in Variable speichern
Set wsSheetTemp = ActiveSheet
'Name eingeben
strName = InputBox(„Geben Sie den Namen des neuen Sheets ein:“, „Eingabe“)
'Dummy-Name setzen, wenn keiner eingegeben wurde
If strName = „“ Then strName = „NeuesSheet“
'Sheet umbenennen
wsSheetTemp.Name = strName

End Sub
'---------------------------------------

Einziges Problem, was noch auftreten könnte:
Sollte 2 Mal kein Name eingegeben werden, wird der Dummy-Name doppelt vergeben und das führt natürlich zu einer Fehlermeldung. Aber das könnte man auch noch lösen, wenn nötig.

Noch ein kleiner Tipp:
Solltest du in Excel was in VBA programmieren wollen, was man auch ohne Skript hinbekommt, starte den Makro-Rekorder und nehm die Funktion auf. Dann erhälst du die Funktion in VBA und kannst sie anpassen und optimieren…

Gruß,
Vandroy

Super, Danke Vandroy… das hat prima funktioniert.
Den Recorder kenne ich, liefert aber leider nicht immer die gewünschten Ergebnisse.

Hätte noch eine Aufgabe.. vielleicht kannst Du die auch lösen???

Ich suche ein Makro, dass immer einen bestimmten Datensatz kopiert. Es soll immer die Daten aus Worksheet “temp” die in Zeile 2 bis Zeile 27 stehen (inkl. Formatierung, Gruppierung etc) in das aktive Worksheet kopieren. Im aktiven Worksheet stehen die letzten Einträge beispielsweise in Zelle B20, dann sollen die neuen Daten immer in B22 kopiert werden. Dies bedeuted man behält die bestehenden Datensätze im aktiven Sheet und kopiert einfach den Datensatz (mit einer Zeile Versatz) aus dem Vorlage-Worksheet unter den letzten Dateneintrag. Ganz wichtig, die Anzahl der Datensätze kann variieren, mal können es z.B. 2 Zeilen sein, mal 3 Zeilen die bereits bestehen:

Bestehender Eintrag 1a
Bestehender Eintrag 1b
(leerzeile)
Bestehender Eintrag 2a
Bestehender Eintrag 2b
Bestehender Eintrag 2c
(leerzeile)
Bestehender Eintrag 3a
Bestehender Eintrag 3b
(leerzeile)
Neuer kopierter Eintrag
Neuer kopierter Eintrag

Eine Idee?