28.06.2020, 15:31
Hallo zusammen,
ich möchte eine Funktion erstellen, in der das aktuelle Blatt per Knopfdruck dupliziert wird und hinter das aktive Blatt hinzugefügt wird.
Dabei soll der Name des neuen Blattes geändert werden. Zudem soll kontrolliert werden, ob ein Blatt mit diesem Namen bereits existiert. Das Generieren eines neuen Blattes, das Umbenennen und die Kontrolle ob ein Blatt mit diesem Name bereits existiert habe ich hinbekommen. Allerdings scheitere ich in der Kopie des gesamten Tabellenblattes in das Neue. Problem ist wenn nur der Inhalt kopiert wird, ändert sich Formatierung und Funktionen wie z.B. Verschwinden lassen von mehreren Zeilen mit + und -.
Daher muss ich es irgendwie hinbekommen, dass alles wie bereits programmiert abläuft und dann dass bereits existierende Blatt dupliziert wird und wie angegeben umbenannt... Kann mir da vielleicht jemand weiterhelfen bzw hat jemand eine Idee wie man das lösen kann?
Vielen Dank schon mal an jede Hilfe!
__________________
Sub NeuesSheet()
'** Neues benanntes Tabellenblatt einfügen
'** einfügen als letztes Blatt
'** Dimensionierung der Variablen
Dim blatt As Object
Dim BlattName As String
Dim bolFlg As Boolean
'** Blattname festlegen
BlattName = "PM 2"
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
For Each blatt In Sheets
If blatt.Name = BlattName Then bolFlg = True
Next blatt
'** Blatt nur einfügen, wenn noch nicht vorhanden
If bolFlg = False Then
With ThisWorkbook
.Sheets.Add After:=Sheets(Worksheets.Count)
.ActiveSheet.Name = "PM 2"
End With
End If
End Sub
____________________
ich möchte eine Funktion erstellen, in der das aktuelle Blatt per Knopfdruck dupliziert wird und hinter das aktive Blatt hinzugefügt wird.
Dabei soll der Name des neuen Blattes geändert werden. Zudem soll kontrolliert werden, ob ein Blatt mit diesem Namen bereits existiert. Das Generieren eines neuen Blattes, das Umbenennen und die Kontrolle ob ein Blatt mit diesem Name bereits existiert habe ich hinbekommen. Allerdings scheitere ich in der Kopie des gesamten Tabellenblattes in das Neue. Problem ist wenn nur der Inhalt kopiert wird, ändert sich Formatierung und Funktionen wie z.B. Verschwinden lassen von mehreren Zeilen mit + und -.
Daher muss ich es irgendwie hinbekommen, dass alles wie bereits programmiert abläuft und dann dass bereits existierende Blatt dupliziert wird und wie angegeben umbenannt... Kann mir da vielleicht jemand weiterhelfen bzw hat jemand eine Idee wie man das lösen kann?
Vielen Dank schon mal an jede Hilfe!
__________________
Sub NeuesSheet()
'** Neues benanntes Tabellenblatt einfügen
'** einfügen als letztes Blatt
'** Dimensionierung der Variablen
Dim blatt As Object
Dim BlattName As String
Dim bolFlg As Boolean
'** Blattname festlegen
BlattName = "PM 2"
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
For Each blatt In Sheets
If blatt.Name = BlattName Then bolFlg = True
Next blatt
'** Blatt nur einfügen, wenn noch nicht vorhanden
If bolFlg = False Then
With ThisWorkbook
.Sheets.Add After:=Sheets(Worksheets.Count)
.ActiveSheet.Name = "PM 2"
End With
End If
End Sub
____________________