Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datei mit Werten speichern

Datei mit Werten speichern
02.08.2007 21:25:54
Bernd
Hallo,
folgendes Problem: Ich öffne eine Excel-Datei, die mehrere Registerblätter mit Formeln enthält. Nun möchte ich gerne alle Formeln durch Werte ersetzen und die modifizierte Datei mit neuem Dateinamen speichen (Vorgabe: alter Dateiname mit Ergänzung, z.B. "alter Dateiname_Werte.xls").
Dann soll die Ursprungsdatei mit den Formeln gespeichert und geschlosssen werden.
Lässt sich das über ein Makro mit einem "Knopfdruck" erledigen?
Gruß
Bernd

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei mit Werten speichern
02.08.2007 23:12:32
Matthias
Hallo Bernd,
mein Vorschlag:

Sub Wertedatei()
Dim wbQ As Workbook, wbZ As Workbook
Dim i As Integer
Dim fn As String
Set wbQ = ActiveWorkbook
Application.ScreenUpdating = False
'erstes Blatt kopieren
wbQ.Sheets(1).Copy
Set wbZ = ActiveWorkbook
'weitere Blätter kopieren
For i = 2 To wbQ.Sheets.Count
wbQ.Sheets(i).Copy After:=wbZ.Sheets(wbZ.Sheets.Count)
Next i
'Formeln in Werte wandeln
For i = 1 To wbQ.Sheets.Count
With wbZ.Sheets(i)
.Cells.Copy
.Cells.PasteSpecial xlValues
End With
Next i
Application.CutCopyMode = False
'Markierung "entfernen" (kann man auch weglassen)
For i = wbQ.Sheets.Count To 1 Step -1
With wbZ.Sheets(i)
.Activate
.Cells(1, 1).Select
End With
Next i
'Dateinamen der neuen Wertedatei ermitteln
fn = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 4) & "_Werte.xls"
'Wertedatei speichern
wbZ.SaveAs Filename:=fn
'wbZ.Close 'evtl. schließen?
'Ursprungsdatei schließen
wbQ.Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub


Gruß Matthias

Anzeige
AW: Datei mit Werten speichern
02.08.2007 23:20:00
Bernd
Hallo Matthias,
macht sich hervorragend! Hat auf Anhieb geklappt, vielleicht noch eine Kleinigkeit:
Könnte die Datei mit den Werten auch noch automatisch geschlossen werden?
Besten Dank schon mal und Gute Nacht!
Bernd

AW: Datei mit Werten speichern
02.08.2007 23:24:08
Matthias
Hallo Bernd,
steht schon im Code der ersten Antwort:

'Wertedatei speichern
wbZ.SaveAs Filename:=fn
'wbZ.Close 'evtl. schließen?


Du musst nur das ' am Anfang der dritten Zeile entfernen.
Gruß Matthias

Anzeige
AW: Datei mit Werten speichern
02.08.2007 23:31:00
Bernd
Hi Matthias,
besten Dank für den Hinweis!
Guten Nacht
Bernd

Noch ein Detail
03.08.2007 07:20:00
Bernd
Hallo Matthias,
ist es evtl. möglich explizit über den Namen des Registerblattes möglich nur bestimmte Registerblätter als Wertedatei abzuspeichern bzw. zumindest das nur z.B. die ersten 3 Registerblätter in den Export einbezogen werden?
Gruß
Bernd

Anzeige
AW: Noch ein Detail
03.08.2007 09:12:41
Matthias
Hallo Bernd,
ja, das geht. Aber wie nun genau?
Gruß Matthias

AW: Noch ein Detail
03.08.2007 10:48:00
Bernd
Hallo Matthias,
angenommen die Originaldatei heißt Orginal.xls und hat 4 Registerblätter mit den Namen Test1, Test2, Test3 und Test4. Nun möchte ich nur die Registerblätter Test1 und Test2 als Wertedatei "Original_Werte.xls" exportieren. Wie muss ich das anpassen?
Grüsse
Bernd

Anzeige
AW: Noch ein Detail
03.08.2007 13:23:00
Matthias
Hallo Bernd,
dann z.B. so:

Sub Wertedatei()
Dim wbQ As Workbook, wbZ As Workbook
Dim i As Integer
Dim fn As String
Dim Blaetter
Set wbQ = ActiveWorkbook
Application.ScreenUpdating = False
' #### zu kopierende Blätter festlegen ####
Blaetter = Array("Test1", "Test2")
'erstes Blatt kopieren
wbQ.Sheets(Blaetter(0)).Copy
Set wbZ = ActiveWorkbook
'weitere Blätter kopieren
For i = 1 To UBound(Blaetter) 'wbQ.Sheets.Count
wbQ.Sheets(Blaetter(i)).Copy After:=wbZ.Sheets(wbZ.Sheets.Count)
Next i
'Formeln in Werte wandeln
For i = 1 To wbZ.Sheets.Count
With wbZ.Sheets(i)
.Cells.Copy
.Cells.PasteSpecial xlValues
End With
Next i
Application.CutCopyMode = False
'Markierung "entfernen" (kann man auch weglassen)
For i = wbZ.Sheets.Count To 1 Step -1
With wbZ.Sheets(i)
.Activate
.Cells(1, 1).Select
End With
Next i
'Dateinamen der neuen Wertedatei ermitteln
fn = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 4) & "_Werte.xls"
'Wertedatei speichern
wbZ.SaveAs Filename:=fn
wbZ.Close 'schließen
'Ursprungsdatei schließen
wbQ.Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub


Gruß Matthias

Anzeige
Ähnliches Problem....
09.08.2007 07:21:00
Bernd
Hallo Matthias,
ich habe heute nochmals eine Frage zu einem sehr ähnlichen Problem gestellt, da geht es aber eher um eine Masseproblem (viele Dateien mit Werten abspeichern) : https://www.herber.de/forum/archiv/892to896/t894937.htm#894937
Vielleicht hast Du ja Zeit, und kannst Dir den Thread mal genauer anschauen!
Gruß
Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige