Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

datei speichern nur über makro

Forumthread: datei speichern nur über makro

datei speichern nur über makro
08.01.2004 15:05:50
Sven
haalo nochmal!!
ich möchte, dass das speichern einer Datei unmöglich gemacht wird..... auch beim schließen soll keine meldung erscheinen, ob gesoeichert werden soll......
ABER:
über ein makro will ich die datei speichern können........

MfG
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: datei speichern nur über makro
08.01.2004 15:12:43
Matthias G
Hallo Sven,
in DieseArbeitsmappe:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub

Wenn Du über ein Makro dann Speichern willst, folgenden Code:
Applicarion.EnableEvents = False
ActiveWorkbook.Save
Applicarion.EnableEvents = True
Gruß,
Matthias
Anzeige
AW: datei speichern nur über makro
08.01.2004 15:54:00
Sven
Super, das klappt alles, aber wie kriege ich dort noch überall ne kleine meldung per msgbox rein?
bei den beiden ersten "nicht möglich speichern"
bei der 2. dann der hinweis, dass jetzt gespeichert wird, da dies sehr lange dauert........
ach so, nach dem speichern werden dann noch weitere makros ausgeführt, das ist kein problem oder?

Danke
Anzeige
AW: datei speichern nur über makro
08.01.2004 16:07:27
Matthias G
Hallo Sven,
Eine Meldung kannst Du mit
MsgBox "Meine Meldung"
erzeugen. Sie muss allerdings mit Klick auf OK bestätigt werden.
Eine Meldung, dass gerade gespeichert wird (ohne Bestätigung), kannst Du mit einem UserForm erzeugen, in dem Du die Eigenschaft "ShowModal" des UserForms auf "False" setzt (im Eigenschaftsfenster des UserForms).
In das Userform muss kein Schließen-Knopf, nur der Text "Datei wird gespeichert".
Dann:
UserFormSpeichern.Show '(je nachdem wie das UserForm heißt)
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True
UserFormSpeichern.Hide
Wenn nach der Speichermeldung noch Code kommt, ist das kein Problem, du solltest allerdings die Eigenschaft "EnableEvents" gleich nach dem Speichern wieder auf "True" setzen und erst dann Deinen Code anfügen.
Gruß,
Matthias
Anzeige
AW: datei speichern nur über makro
08.01.2004 23:29:00
sven
super, vielen dank, nur folgendes:
die userform speichern wird nicht richtig angezeigt....... nur oben die leiste, der rest ist weiß, warum?
AW: datei speichern nur über makro
09.01.2004 12:00:04
Matthias G
Hallo Sven,
Gib vor dem Speichern-Befehl den Befehl
Application.DoEvents
ein, dann nimmt sich der Rechner die Zeit, um das Userform komplett darzustellen.
Wenn das nicht klappt, warte eine Sekunde:
Application.Wait (Now + TimeValue("0:00:01"))
Gruß,
Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Datei nur über Makro speichern in Excel


Schritt-für-Schritt-Anleitung

Um das Speichern einer Excel-Datei nur über ein Makro zu ermöglichen, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Wähle die Arbeitsmappe aus: Im Projektfenster auf der linken Seite, suche nach "DieseArbeitsmappe".

  3. Füge folgenden Code ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        ThisWorkbook.Saved = True
    End Sub
    
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Cancel = True
    End Sub
  4. Makro zum Speichern: Erstelle ein weiteres Makro, um die Datei zu speichern. Füge diesen Code in ein Modul ein:

    Sub SpeichernMitMakro()
        Application.EnableEvents = False
        ActiveWorkbook.Save
        Application.EnableEvents = True
    End Sub
  5. Füge Meldungen hinzu: Um Meldungen anzuzeigen, kannst du MsgBox verwenden, z. B.:

    MsgBox "Die Datei wird gespeichert..."

Häufige Fehler und Lösungen

  1. Fehler: UserForm wird nicht angezeigt
    Wenn die UserForm nicht richtig angezeigt wird, füge vor dem Speichern den Befehl Application.DoEvents oder Application.Wait (Now + TimeValue("0:00:01")) ein.

  2. Fehler: Speichern wird nicht ausgeführt
    Stelle sicher, dass das Makro korrekt verknüpft ist und die EnableEvents-Eigenschaft nach dem Speichern wieder auf True gesetzt wird.


Alternative Methoden

Falls du die Datei nicht nur über ein Makro speichern möchtest, kannst du auch folgendes versuchen:

  • Automatisches Speichern aktivieren: In den Excel-Optionen kannst du die AutoSpeichern-Funktion aktivieren, um regelmäßig Sicherungen deiner Datei zu erstellen.
  • Sichere deine Datei über VBA: Du kannst auch einen VBA-Code schreiben, der die Datei zu bestimmten Zeitpunkten automatisch speichert.

Praktische Beispiele

Hier sind einige Beispiele für VBA-Codes, die du verwenden kannst:

  1. Speichern mit einer Meldung:

    Sub SpeichernUndMeldung()
        MsgBox "Bitte warten, die Datei wird jetzt gespeichert..."
        Application.EnableEvents = False
        ActiveWorkbook.Save
        Application.EnableEvents = True
        MsgBox "Die Datei wurde erfolgreich gespeichert!"
    End Sub
  2. UserForm während des Speicherns:

    Sub SpeichernMitUserForm()
        UserFormSpeichern.Show vbModeless
        Application.EnableEvents = False
        ActiveWorkbook.Save
        Application.EnableEvents = True
        UserFormSpeichern.Hide
    End Sub

Tipps für Profis

  • Verwende Error Handling: Implementiere On Error Resume Next innerhalb deines Codes, um mögliche Fehler abzufangen und das Programm nicht zum Absturz zu bringen.
  • Speichere in verschiedenen Formaten: Du kannst auch den Dateityp beim Speichern angeben, z. B. .xlsx oder .xlsm, indem du den SaveAs-Befehl nutzt.

    ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

FAQ: Häufige Fragen

1. Wie verhindere ich, dass die Datei beim Schließen gespeichert wird?
Durch den Code ThisWorkbook.Saved = True im Workbook_BeforeClose Ereignis wird verhindert, dass eine Speicherabfrage erscheint.

2. Kann ich weitere Makros nach dem Speichern ausführen?
Ja, das ist möglich. Stelle sicher, dass du Application.EnableEvents nach dem Speichern wieder aktivierst, bevor du weitere Makros ausführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige