AW: Makro-Lösung
24.05.2009 20:03:20
Daniel
Hi
hier mal ein Makro, das von der aktiven Datei eine Kopie ohne Makros anlegt, die alte Datei löscht und die neue Datei unter dem alten Dateinamen speichert (dieser Teil ist aber erstmal auskommentiert)
Sub DateiKopierenNurWerte()
Dim wbNeu As Workbook
Dim wbAlt As Workbook
Dim sh As Worksheet
Dim i As Long
Dim DatName As String
Set wbAlt = ActiveWorkbook
Set wbNeu = Workbooks.Add(wbAlt.Worksheets.Count)
'--- Daten kopieren nur Werte
For i = 1 To wbAlt.Worksheets.Count
wbAlt.Sheets(i).Cells.Copy
wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteValues
wbNeu.Sheets(i).Cells(1, 1).PasteSpecial xlPasteFormats
wbNeu.Sheets(i).Name = wbAlt.Sheets(i).Name
Next
'--- altes Datei löschen, neue Datei unter gleichem Namen Speichern
'--- (diesen Teil solltest du lieber erstmal auskommentiert lassen)
'DatName = wbAlt.FullName
'wbAlt.Saved = True
'wbAlt.Close 'alte Datei schließen
'Kill DatName 'alte Datei löschen
'wbNeu.SaveAs DatName 'neue Datei unter alten Namen speichern
End Sub
genauer gesagt, legt dieses Marko eine neue Datei an und kopiert Werte, Formate und Blattnamen der aktiven Datei in eine neue Datei. Dabei gehen Makros und Seiteneinstellungen (Druckbereiche) allerdings verloren (für Makros war das ja von dir gewünscht)
im 2. Teil, den ich vorerst deaktiviert habe, wird dann die alte Datei gelöscht und die neue unter dem alten Namen gespreichert.
Dh. dieses Makro solltest du in einer 3. unabhängigen Datei anlegen.
Gruß, Daniel