Hallo liebe Community!
Ich habe eine Frage...
Ich habe eine Excel-Datei (Endlung: .xlsm) in der ich viele Arbeitsblätter habe. Auf diesen Arbeitsblättern sind in den Zellen meistens Formeln eingebaut, die mir dann einen Wert anzeigen.
Des Weiteren, habe ich in den verschiedensten Tabellenblättern, mehrere AcitveX-Buttons und habe in der ganzen Datei, ziemlich viel Code hinterlegt!
Mein Bestreben / Wunsch, ist es nun, dass ich diese Datei, nochmals, praktisch als eine Kopie von sich selbst speichern möchte (dh: alle Tabellenblätter und Formatierungen sind komplett ident....) ABER,
1.) alle Felder sollen ausschließlich nur Werte enthalten! --> Somit: Jedes Feld, was eine Formel enthält soll nur den Wert, den die Formel ausgibt beinhalten, aber nicht mehr die Formel selbst!
und
2.) Sämtlicher Code, muss aus der Mappe entfernt sein! - Es soll kein Code mitgespeichert werden
So... Zu 2.) habe ich gesehen, dass es ja möglich ist, die Excel Datei einfach als .xlsx-Datei zu speichern und dann werden automatisch der Code bzw. die Makros nicht mitgespeichert!
Jedoch bleiben mir natürlich die Formeln erhalten :((
Wie könnte man das in VBA umsetzen, dass ich einen Button habe, der mir bei Betätigung eine Kopie von der aktuellen Datei speichert, aber mit den zuvor genannten Bedingungen??
Ich habe mal ein bisschen recherchiert... und bin dabei auf das hier gestoßen:
Jedoch möchte ich die Datei komplett speichern und ich möchte auch dasss alle Formatierungen erhalten bleiben... lediglich Code und Formeln und stattdessen nur Werte sollen gesetzt sein....
Hat jemand eine Idee??
LG Tim
Ich habe eine Frage...
Ich habe eine Excel-Datei (Endlung: .xlsm) in der ich viele Arbeitsblätter habe. Auf diesen Arbeitsblättern sind in den Zellen meistens Formeln eingebaut, die mir dann einen Wert anzeigen.
Des Weiteren, habe ich in den verschiedensten Tabellenblättern, mehrere AcitveX-Buttons und habe in der ganzen Datei, ziemlich viel Code hinterlegt!
Mein Bestreben / Wunsch, ist es nun, dass ich diese Datei, nochmals, praktisch als eine Kopie von sich selbst speichern möchte (dh: alle Tabellenblätter und Formatierungen sind komplett ident....) ABER,
1.) alle Felder sollen ausschließlich nur Werte enthalten! --> Somit: Jedes Feld, was eine Formel enthält soll nur den Wert, den die Formel ausgibt beinhalten, aber nicht mehr die Formel selbst!
und
2.) Sämtlicher Code, muss aus der Mappe entfernt sein! - Es soll kein Code mitgespeichert werden
So... Zu 2.) habe ich gesehen, dass es ja möglich ist, die Excel Datei einfach als .xlsx-Datei zu speichern und dann werden automatisch der Code bzw. die Makros nicht mitgespeichert!
Jedoch bleiben mir natürlich die Formeln erhalten :((
Wie könnte man das in VBA umsetzen, dass ich einen Button habe, der mir bei Betätigung eine Kopie von der aktuellen Datei speichert, aber mit den zuvor genannten Bedingungen??
Ich habe mal ein bisschen recherchiert... und bin dabei auf das hier gestoßen:
Visual Basic-Quellcode
- Sub SpeicherMirsAlsNeueMappe()
- Dim vntPathAndFile As String
- Rem Speicherndialog aufrufen und Pfad/Name abfragen
- vntPathAndFile = Application.GetSaveAsFilename(InitialFileName:=ActiveSheet.Name & Format(Now, " dd.mm.yyyy ") & ".xlsx", _
- FileFilter:="Excel Files(*.xlsx), *.xlsx", Title:="Speichern als")
- Rem Wenn Dialog abgebrochen, dann Makro verlassen
- If vntPathAndFile = "Falsch" Then Exit Sub
- Rem Neue Arbeitsmappe erstellen
- Workbooks.Add
- Rem Bildschirmmeldungen auschalten
- Application.DisplayAlerts = False
- Rem Einfügen und speichern
- ThisWorkbook.Sheets(1).UsedRange.Copy
- With ActiveWorkbook
- With .ActiveSheet
- .Range("A1").PasteSpecial xlPasteValues
- End With
- .SaveAs Filename:=vntPathAndFile, FileFormat:=xlOpenXMLWorkbook
- .Close
- End With
- Rem Zwischenablage leeren
- Application.CutCopyMode = False
- Rem Bildschirmmeldungen einschalten
- Application.DisplayAlerts = True
- End Sub
Jedoch möchte ich die Datei komplett speichern und ich möchte auch dasss alle Formatierungen erhalten bleiben... lediglich Code und Formeln und stattdessen nur Werte sollen gesetzt sein....
Hat jemand eine Idee??
LG Tim