Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

Anzeige
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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige