AW: Datei clonen aber nur die Werte?
14.01.2021 16:08:10
Klaus
Hi,
klar kannst du alles mit übernehmen - muss halt mit abgefragt werden. Wenn noch Buttons und so weiter dazu kommen ist es wahrscheinlich einfacher, das Workbook einfach unter einem Temporärem Namen abzuspeichern. FÜr das Erfragte - Blattnamen und Reiterfarben - tuns aber auch zwei manuelle Abfragen.
Ich hab dir das Makro mal durchkommentiert.
Sub WorkbookFormellos()
'Variablen definieren
Dim wbOld As Workbook
Dim wbNew As Workbook
Dim ws As Worksheet
'altes Workbook merken
Set wbOld = ActiveWorkbook
'neues Workbook erstellen, bekommt automatisch Fokus
Workbooks.Add
'Da das neu erstellte Workbook im Fokus ist, kann es mit "ActiveWorkbook" zugewiesen werden
Set wbNew = ActiveWorkbook
'Schleife über alle Worksheets des alten Workbooks
For Each ws In wbOld.Worksheets
'neues Blatt erstellen - ganz vorne
wbNew.Sheets.Add After:=wbNew.Sheets(wbNew.Sheets.Count)
'Name des Blattes übertragen
ActiveSheet.Name = ws.Name
'Farbe des Reiters übertragen
ActiveSheet.Tab.Color = ws.Tab.Color
'Inhalte kopieren
ws.Cells.Copy
'Formate und Werte-statt-Formeln einfügen
wbNew.ActiveSheet.Range("A1").PasteSpecial xlPasteFormats
wbNew.ActiveSheet.Range("A1").PasteSpecial xlPasteValues
Next ws
'Das erste Blatt ist immer noch "Tabelle1". Dies ohne Rückfrage (=DisplayAlert) löschen
Application.DisplayAlerts = False
Sheets(1).Delete
Application.DisplayAlerts = True
'Variablen zurücksetzen ist nicht unbedingt nötig, gehört aber zum guten Stil
Set wbNew = Nothing
Set wbOld = Nothing
End Sub
Übrigens: Dass die Registerfarbe mit "sheet.tab.color" angegeben wird, wusste ich nicht. Aber der Makrorekorder wusste es für mich :-)
LG,
Klaus