Kopie ohne Makro speichern und im original bleiben

Bild

Betrifft: Kopie ohne Makro speichern und im original bleiben
von: Dennis
Geschrieben am: 28.09.2015 19:54:36

Hallo zusammen,
nachdem ich hier in diesem tollen Form seit geraumer Zeit mitlese und schon einige super Ideen bekommen und umgesetzt habe, habe ich nun ein Problem, zu dem ich leider im Netzt noch keine Lösung gefunden habe.
Ich habe eine Schichtplan-Datei im .xlsm Format mit einigen Makros
Diese würde ich gerne anderen Arbeitskollegen zur Verfügung stellen, aber nur zur Ansicht und auch nur bis zu bestimmten Änderungsständen.
Das heißt, ich möchte in der original Datei ein Makro ausführen, welches mir an einem bestimmten Speicherort eine Kopie im .xlsx Format anlegt.
Allerdings möchte ich diese Datei nicht öffnen, sprich die Original Datei, welche sich an einem anderen Speicherort befindet soll geöffnet bleiben.
Mit folgender Funktion klappt das speichern wunderbar, ich befinde mich allerdings danach direkt in der gespeicherten Datei

Sub Speichern()
Dim strDname As String
strDname = "C:\Excel\" & "test.xlsx"
ActiveWorkbook.SaveAs strDname, FileFormat:=xlOpenXMLWorkbook 
End Sub
Hat jemand eine Idee?
Danke schon mal
Gruß Dennis

Bild

Betrifft: AW: Kopie ohne Makro speichern und im original bleiben
von: Hajo_Zi
Geschrieben am: 28.09.2015 19:57:33
Hallo Dennis,
vielleicht
.SavecopyAs


Bild

Betrifft: AW: Kopie ohne Makro speichern und im original bleiben
von: Dennis
Geschrieben am: 28.09.2015 20:02:24
Hallo Hajo,
daran hatte ich auch schon gedacht. Nur speichert die Funktion .SaveCopyAs eine 1:1 Kopie mit Makros.
Diese will ich bewusst in der Kopie nicht haben.

Bild

Betrifft: AW: Kopie ohne Makro speichern und im original bleiben
von: Daniel
Geschrieben am: 28.09.2015 20:23:42
Hi
das SaveCopyAs speichert nur eine 1:1-Kopie, bei man ausser dem Namen nichts ändern kann.
mein Workaround wäre, dass du dir vor dem Speichern als xlsx den alten Dateinamen und das Fileformat in einer Variablen merkst und dann am Schluss die Datei nochmal mit SaveAs und den alten Werten speicherst, dann bist du im Prinzip wieder auf der "alten" Datei, nur dass du sie nochmal gespeichert hast.

Sub Speichern()
Dim altDateiname As String
Dim altFileFormat As Long
Dim neuDateiname As String
altDateiname = ActiveWorkbook.FullName
altFileFormat = ActiveWorkbook.FileFormat
neuDateiname = "C:\Excel\" & "test.xlsx"
ActiveWorkbook.SaveAs neuDateiname, FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs altDateiname, altFileFormat
Application.DisplayAlerts = True
End Sub
wenn du die alte Datei nicht automatisch mit speichern willst, dann müsstest du eine neue Datei anlegen, die Sheets einzeln rüberkopieren und dann diese Datei speichern.
gruss Daniel

Bild

Betrifft: AW: Kopie ohne Makro speichern und im original bleiben
von: Dennis
Geschrieben am: 28.09.2015 20:38:52
Hallo Daniel,
danke für die Anregung.
Habe das gerade mal ausprobiert.
Bekomme da folgende Meldung
Userbild
Userbild
Aber die Idee ist gut daran habe ich auch schon gedacht

Bild

Betrifft: AW: Kopie ohne Makro speichern und im original bleiben
von: Dennis
Geschrieben am: 28.09.2015 20:41:28
Habe das jetzt folgendermaßen gelöst:
Scheint zu funktionieren.

Sub Speichern()
    
    Dim strCopyName As String
    Dim strPath As String
    Dim strName As String
      
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
                
    strPath = ActiveWorkbook.Path
    strName = ActiveWorkbook.Name
    strCopyName = "C:\Users\Dennis\Excel\" & "test.xlsx"
        
    ActiveWorkbook.SaveAs strCopyName, FileFormat:=xlOpenXMLWorkbook
    ActiveWorkbook.SaveAs strPath & "\" & strName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
      
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
       
End Sub
Ich Danke euch für die Hilfe

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Kopie ohne Makro speichern und im original bleiben"