Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Savecopyas
#1
Hallo miteinander,

seit einer Anfrage, welche hier gestellt wurde, beschäftige ich mich mit der Savecopyas - Methode. Heute habe ich dann endlich gelesen, dass man damit nicht vorgeben kann ob man als "xlsm" oder "xlsx" speichern kann. Ich habe weiter recherchiert und Microsoft schrieb, dass man mit der folgenden Zeile als "xlsx" die Kopie ablegen könnte:
Code:
Me.Application.ActiveWorkbook.SaveCopyAs ("C:\Excel\Forumsarbeiten\KopieTest.xlsx")
Klasse ... kann man auch, aber öffnen kann man die Datei nicht mehr.

Da ich denke, dass dieses Thema für andere auch interessant werden wird suche ich weiterhin nach einer Lösung für das Problem und stelle hier die Frage.

Nehmen wir an ich habe eine Datei in der ich arbeite, welche Makros enthält. Möchte eine Kopie als "xlsx" speichern (die hat somit keine Makros mehr), was habe ich für Alternativen wenn savecopyas nicht mehr funktioniert?
Nutze ich die Saveas Methode kann ich natürlich eine Datei unter einem anderen Namen speichern. Das hat aber doch zur Folge, dass die Datei in der ich arbeite ohne zu speichern geschlossen wird.

Gibt es in Excel nur noch die Möglichkeit über diesen Umweg?

-speichere Hauptdatei (xlsm)
-speichere Kopie (xlsx)
-schließe Kopie
-öffne Hauptdatei

Da muss es doch eine Alternative geben, oder? Wäre nett wenn mich da mal jemand aufklären würde.

Gruß
Marcus
Antwortento top
#2
Hallo,

ich habe in dem Beitrag den du vermutlich meinst
http://www.clever-excel-forum.de/Thread-...-nur-Werte
folgenden Code gepostet:

Code:
Sub Speichern()
'Quelle: Herber
   Dim wks As Worksheet
   Dim sFile As String
   Application.ScreenUpdating = False
   'sFile = Application.DefaultFilePath & "\test.xls"
   sFile = "C:\Test\" & "test.xls"
   For Each wks In Worksheets
      With wks.UsedRange
         .Value = .Value
      End With
    Next wks
    ActiveWorkbook.SaveAs sFile
    Application.ScreenUpdating = True
End Sub

Wenn ich die Zeile

ActiveWorkbook.SaveAs sFile

so ergänze

ActiveWorkbook.SaveAs sFile, FileFormat:=xlOpenXMLWorkbook

dann funktioniert das Speichern bei mir.
Gruß
Peter
Antwortento top
#3
Hallo Peter,

klasse und für diese kleine Ergänzung sitze ich jetzt so lange an dem Code? Ich sollte mich echt schämen 20
Wenn man jetzt noch die Displayalerts abschaltet wird die alte Datei auch einfach überschrieben.


Code:
Sub Speichern()
'Quelle: Herber
    Dim wks As Worksheet
    Dim sFile As String
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    'sFile = Application.DefaultFilePath & "\test.xls"
    sFile = "C:\Test\" & "test.xlsx"
    For Each wks In Worksheets
       With wks.UsedRange
          .Value = .Value
       End With
     Next wks
     ActiveWorkbook.SaveAs sFile, FileFormat:=xlOpenXMLWorkbook
     Application.DisplayAlerts = True
     Application.ScreenUpdating = True
End Sub

Danke und Gruß
Marcus
Antwortento top
#4
Hallo Marcus,

das Thema hat Glausius beim Forumstreffen angesprochen. Hier mal noch ein paar Informationen:

50 = xlExcel12 ( mit oder ohne macro's - "binäre" Exceldatei, in 2007-2013 als xlsb)
51 = xlOpenXMLWorkbook (ohne macro's, in 2007-2013 als xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (mit oder ohne macro's, in 2007-2013 als xlsm)
56 = xlExcel8 (97-2003 Format, in 2007-2013 als xls)

Man kann die Nummer oder den Ausdruck verwenden. Beim MAC muss man wohl 1 dazuzählen, daher sind die Ausdrücke ggf. besser für eine Funktion auf verschiedenen Plattformen.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#5
Hi,

ich finde das am besten und einfachsten:
(11.10.2014, 07:40)schauan schrieb: 50 = xlExcel12 ( mit oder ohne macro's - "binäre" Exceldatei, in 2007-2013 als xlsb)

standardmäßig so eingestellt, ich muß nicht nachdenken beim abspeichern und ich verbaue mir auch nichts.

Das hat mich schon seit Todtnau fasziniert.
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste