Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


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

Ich arbeite mit Excel 2003!

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.


?mage
to 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
to 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

Ich arbeite mit Excel 2003!

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.


?mage
to 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)
to 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.
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top


Gehe zu:


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