Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei clonen aber nur die Werte?

Datei clonen aber nur die Werte?
14.01.2021 10:15:07
Xantos89
Guten Morgen liebe Excel - Spezialisten,
Ich möchte zukünftig eine Mappe mit mehreren Blättern erstellen, welche auch Formeln enthält.
Gibt es eine Möglichkeit per Button eine 1 zu 1 Kopie der Datei zu erstellen, welche alles übernimmt (auch die Formate) aber eben ohne Formeln? Quasi statt Formeln nur die Werte?
Jemand eine Idee? Hab's bei einer neuen Datei mal mit dem Makro-Recorder versucht aber nicht hinbekommen.
Liebe Grüße Xan

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei clonen aber nur die Werte?
14.01.2021 10:25:49
worti
Hallo Xan,
nach dem Koipieren der Arbeitsmappe über die neu erzuegte Mappe dieses Makro laufen lassen:
Sub Werte()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.ActiveSheet.UsedRange.Value = ws.ActiveSheet.UsedRange.Value
Next ws
End Sub

Gruß Worti
AW: Datei clonen aber nur die Werte?
14.01.2021 11:05:41
Xantos89
Hallo Worti,
bei dem Stück = ws.ActiveSheet markiert er .ActiveSheet mit der Fehlermeldung :
Fehler beim Kompilieren:
Methode oder Datenobjekt nicht gefunden.
Mach ich irgendetwas falsch?
Liebe Grüße Xan
AW: Datei clonen aber nur die Werte?
14.01.2021 11:20:37
Daniel
hi
das .ActiveSheet ist hier falsch. einfach weglassen:
ws.UsedRange.formula = ws.Usedrange.value

weiterhin: ThisWorkbook ist immer die Datei die das laufende Makro enthält.
dh wenn du im selben Makro die neue Mappe erstellst und dann diesen Code ausführst, wird nicht die neue Mappe überarbeitet, sondern die alte.
Gruß Daniel
Anzeige
Danke Daniel, so kanns ohne Test kommen ;-)
14.01.2021 11:29:47
worti
owT
AW: Datei clonen aber nur die Werte?
14.01.2021 11:44:26
Xantos89
Hallo Daniel,
Danke, das funktioniert jetzt.
Bei meinem Glück vergesse ich aber eine Kopie zu erstellen und überschreibe alle Formeln.
Eine 1 zu 1 Kopie in einer neuen Datei ( nur Formate + Werte) per Button ist nicht möglich?
AW: Datei clonen aber nur die Werte?
14.01.2021 12:09:13
worti
Hallo Xan,
komplett sieht es dann so aus:
Sub tttt()
Dim wb As Workbook
Dim ws As Worksheet
ActiveWorkbook.SaveAs Filename:="C:\Users\w050658\Downloads\testkw2.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
Set wb = Workbooks("testkw2.xlsm")
For Each ws In wb.Worksheets
ws.UsedRange.Formula = ws.UsedRange.Value
Next ws
wb.Close True
Set wb = Nothing
End Sub

Gruß Worti
Anzeige
AW: Datei clonen aber nur die Werte?
14.01.2021 13:12:23
Xantos89
Hey Worti,
vielen Dank, das probiere ich gleich mal aus.
Sehe ich das richtig, dass hier ein fester Speicherort sowie feste Dateinamen vergeben werden müssen?
Geht das auch ohne? So das man manuell noch speichern muss? Das Problem ist, dass der Speicherort und die Namen nicht fest sein sollen. Sorry, hätte ich noch sagen müssen.
Ich versuche mal den Ablauf zu beschreiben:
Wenn in der Quelldatei ein Button gedrückt wird, soll eine neue Excel-Datei geöffnet werden. In dieser neuen Datei (Mappe1) sollen alle Blätter,Formate und Werte der Quelldatei sein, eben ohne Formeln.
Beste Grüße Xan
Anzeige
AW: Datei clonen aber nur die Werte?
14.01.2021 13:19:36
Daniel
Hi
Du kannst mit
Datei = Applications.GetSaveAsFilename
Den Speichernamen incl pfad abfragen und in einer Variablen hinterlegen, die du dann bei SaveAs verwendest.
Soll die gespeicherte Datei auch die Makros und Buttons der Vorlage enthalten oder besser nicht?
Gruß Daniel
AW: Datei clonen aber nur die Werte?
14.01.2021 13:21:20
Klaus
Hallo Xan,
die neue Datei soll nicht gespeichert werden? Dann so.
Sub tttt()
Dim wbOld As Workbook
Dim wbNew As Workbook
Dim ws As Worksheet
Set wbOld = ActiveWorkbook
Workbooks.Add
Set wbNew = ActiveWorkbook
For Each ws In wbOld.Worksheets
wbNew.Sheets.Add
ActiveSheet.Name = ws.Name
ws.Cells.Copy
wbNew.ActiveSheet.Range("A1").PasteSpecial
wbNew.ActiveSheet.UsedRange.Formula = wbNew.ActiveSheet.UsedRange.Value
Next ws
Set wbNew = Nothing
Set wbOld = Nothing
End Sub
Speichern kann der Nutzer dann selber.
LG,
Klaus
Anzeige
AW: Datei clonen aber nur die Werte?
14.01.2021 15:05:18
Xantos89
Hey Klaus,
vielen Dank, funktioniert super.
Nur irgendwie vertauscht es die Reihenfolge der Tabellenblätter. Das erste ist jetzt das letzte, das 2. das vorletzte und so weiter.
Kann man das noch irgendwie korrigieren?
Kann man auch die Registerfarbe der Tabellenblätter mit übernehmen?
Beste Grüße Xan
AW: Datei clonen aber nur die Werte?
14.01.2021 15:26:18
onur
Daniel hat doch um 13:19 beschrieben, wie es geht.
Zu viel Arbeit, das Bisschen zusätzlichen Code selber zu schreiben ?
AW: Datei clonen aber nur die Werte?
14.01.2021 15:39:09
Xantos89
Hey onur,
das ist mir natürlich nicht zu viel Arbeit. Ich habe nur schlichtweg so gut wie keine VBA Kenntnisse und versuche mich deswegen Stück für Stück einzuarbeiten.
Zu sehen was jemand geschrieben hat, hilft mir zu verstehen warum das so sein muss.
Grüße
Anzeige
AW: Datei clonen aber nur die Werte?
14.01.2021 15:47:17
onur
Lass die letzten 2 Zeilen weg.
AW: Datei clonen aber nur die Werte?
14.01.2021 15:29:03
Daniel
hi
so werden die neuen Blätter immer am Anfang eingefügt.
damit die Reihenfolge beigehalten bleibt, müssen sie am Ende eingefügt werden:
wbNew.sheets.Add After:=wbNew.Sheets(wbNew.Sheets.Count)

die Registerfarbe musst du genauso explizit per Code übernehmen wie den Registernamen.
wie man die Farbe ändert, kannst du dir mit dem MakroRecoder leicht selbst erarbeiten und dann in den Code einbauen.
ggf musst du auch noch die leeren Blätter, die eine neue Mappe automatisch hat, löschen.
diese sollten jetzt am Anfang stehen.
wieviele das sind, kannst du dir ermitteln, nachdem du das neue Workbook erstellt und der Variablen zugewiesen hast (den Code dafür habe ich dir schon gezeigt)
Gruß Daniel
Anzeige
AW: Datei clonen aber nur die Werte?
14.01.2021 15:34:32
Xantos89
Hey Daniel,
alles klar, ich versuche mal mein Glück.
Vielen Dank
AW: Datei clonen aber nur die Werte?
14.01.2021 15:58:52
Xantos89
Hey Daniel,
der Hammer, hab's hinbekommen.
Vielen Dank für deine Hilfe :-)
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
Anzeige
AW: Datei clonen aber nur die Werte?
14.01.2021 16:53:00
Xantos89
Hey Klaus,
vielen Dank, ich hoffe es war nicht zu viel Mühe. Die Kommentare sind Klasse ( gerade für mich als VBA 0 )
Ich werde die Version und Daniels morgen früh gleich mal testen.
Das ist so Krass was alles geht.
Super Forum, Super Leute, Super Sache
Beste Grüße Xan
Noch ne Variante, eine Datei zu klonen:
14.01.2021 16:01:17
Daniel
auch hiermit wird eine Kopie der aktuellen Datei erstellt:
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
sh.Select 0
Next
ActiveWindow.SelectedSheets.Copy
For Each sh In ActiveWorkbook.Worksheets
With sh.UsedRange
.Formula = .Value
End With
Next

bei dieser Methode werden alle Blattspezifischen Daten automatisch übernommen, dh neben den Inhalten auch
- Registername
- Registerfarbe
- Druckbereich/Seiteneinrichtung
- Tabellenblattmodule und deren Markos (Eventmakros, ActiveX-Steuerelementcodes)
dh es wird im Prinzip alles übernommen, außer den Makros in den allgemeinen Modulen und die Makros aus DieseArbeitsmappe
Gruß Daniel
Anzeige
AW: Noch ne Variante, eine Datei zu klonen:
14.01.2021 16:09:31
Klaus
Ziemlich elegant, Daniel.
LG,
Klaus
AW: Noch ne Variante, eine Datei zu klonen:
14.01.2021 16:55:29
Xantos89
Hey Daniel,
werde ich morgen früh gleich mal testen.
Vielen lieben Dank für eure Hilfe.
Beste Grüße Xan
AW: Noch ne Variante, eine Datei zu klonen:
15.01.2021 07:45:55
Xantos89
Hey Klaus und Daniel,
tja was soll ich sagen, ihr seid der Hammer.
Habe beide Varianten getestet und es läuft alles genau so wie ich es wollte.
Vielen lieben Dank für eure Hilfe und eure Geduld mit jemanden der keine Ahnung hat.
Ihr rockt 🤘

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige