Excel 2016 VBA Ohne Meldung speichen

Nager47

Cadet 4th Year
Registriert
Feb. 2016
Beiträge
68
Hey,

Ich habe eine Xltm (Excel Vorlage mit Makros) Datei. Die Makros in der Datei werden nur dafür verwendet Dateien zu kopieren. Das funktioniert einwandfrei.

Jetzt möchte ich diese Datei abspeichern. Aber ohne Makros (diese werden nicht mehr benötigt).
Nun kommt immer die Meldung:
Das mein VBA Projekt (Makros) in der xlsx Datei nicht gespeichert werden kann!

Weiß jemand wie ich die Meldung per VBA deaktivieren kann?
(Application.DisplayAlerts = False habe ich versucht aber klappt leider nicht)

Im Netzt hab ich bisher auch nicht funktionierendes gefunden.

Gruß
Jan
 
Genau kann ich nicht rauslesen was gewollt ist.
Evtl. mit
ActiveWorkbook.Close savechanges:= True
 
anra8000 schrieb:
Genau kann ich nicht rauslesen was gewollt ist.
Evtl. mit
ActiveWorkbook.Close savechanges:= True

Ich möchte eine Excel Datei (in der Makros sind) aber ohne Makros speichern. Und das ganze ohne die Meldung das wenn ich die Datei Speicher die Makros verlohren gehen.

ActiveWorkbook.Close savechanges:= True
Funktioniert leider nicht
 
Zuletzt bearbeitet:
War ehrlich gesagt der erste Treffer bei Google:

Code:
Option Explicit

Sub SpeichernOhneMakro()
   Dim Pfad As String, DateiName As String
    
   Pfad = "C:\temp\test"
   On Error GoTo ErrorHandler
   With Application
      .ScreenUpdating = False
      .DisplayAlerts = False
   End With
   ActiveWorkbook.SaveAs Pfad, FileFormat:=xlOpenXMLWorkbook
   
ErrorHandler:
   With Application
      .ScreenUpdating = True
      .DisplayAlerts = True
   End With
   If Err.Number <> 0 Then MsgBox "Fehler Nr.: " & Err.Number & vbCrLf _
    & Err.Description, vbCritical, "Fehler!"
End Sub

In Pfad steht Pfad und Dateiname...kann man natürlich auch trennen. Dateiname ohne Erweiterung!
 
Zuletzt bearbeitet: (Ergänzung)
Leider ist das nicht das was ich suche!

Der Dateiname und der Speicherpfad sind in deinem Fall festgelegt.
Diese müssen aber auswählbar sein. (So wie man es bei "speichern unter" kennt)
 
Junge, wie wäre es, wenn du das was du willst dann mal ein wenig beschreibst. WTF...

Im Übrigen wieder der erste Google-Treffer:

Code:
   Pfad = Application.GetSaveAsFilename
   
   Pfad = Left(Pfad, InStr(1, Pfad, ".") - 1)

Einfügen anstatt des festen Dateinamens
 
…also wäre effektiv nur DisplayAlerts abzuschalten?
CN8
 
Das war nicht meine Frage…

Genügt es, weil: ich selbst habe das nicht, grundsätzlich DisplayAlerts vorübergehend abzuschalten wenn ich eine XLSM als XLSX (oder XLS) unter Makroverlust speichern will um nicht nach besagtem Verlust gefragt zu werden?

CN8
 
Doch, das war exakt die Antwort auf deine Frage.

DisplayAlerts wird nach der Codeausführung automatisch wieder auf True gesetzt.

Hmmm, wie erkläre ich es am besten...

1. Du startest Excel.
2. Du startest ein Makro, welches DisplayAlerts auf False setzt. (DisplayAlerts wird auf False gesetzt)
3. Das Makro läuft. (DisplayAlerts = False)
4. Das Marko wird beendet. (DisplayAlerts wird auf True gesetzt)
5. Du speicherst die Datei ohne Makro. (DisplayAlerts = True)

Wenn du also die Speichern unter Funktion aus dem Makro (also bei 3.) startest, bekommst du keine Meldung.
Wenn du die Speichern unter Funktion per Hand durch einen Klick auf den Button (also bei 5.) startest, bekommst du eine Meldung.

Man könnte natürlich bei Programmstart Code starten und die Alerts abschalten (bspw. ein unsichtbares Form mit ShowModal = False) und diese beim Beenden von Excel wieder schließen. Dann würde man keine Meldung bekommen...allerdings würden eine ganze Reihe von Funktionen nicht arbeiten, weil diese selbst VBA nutzen und durch den laufenden Code geblockt werden.

Sinnvoll ist eigentlich nur das Erzeugen eines eigenen Speicherbuttons in der Tabelle, der sich selbst löscht und die Datei ohne Meldungen speichert.
 
Ich habe nach nichts anderem gefragt und nichts anderes gewollt. Dass die Alerts automatisch wieder angehen ist ja sinnvoll und wäre mir recht; und natürlich kenne ich es nicht anders da ich es selbst einsetzte. Ich habe halt keine nur XLSMs oder DOCMs :)

Allein die Rückfrage um den Makroverlust wird also als Kernlösung unterdrückt.

CN8
 
Zurück
Oben