Excel-VBA_Cancel = True in workbook_beforesave geht nicht

Diskutiere und helfe bei Excel-VBA_Cancel = True in workbook_beforesave geht nicht im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo, könnte bitte jemand diesen Code ausprobieren? Normalerweise müsste die Speicherroutine abgebrochen werden. Tut sie aber nicht. Ich habe nur... Dieses Thema im Forum "Microsoft Office" wurde erstellt von SteffenMonzheimer, 13. Januar 2021 um 18:03 Uhr.

  1. Excel-VBA_Cancel = True in workbook_beforesave geht nicht


    Hallo,


    könnte bitte jemand diesen Code ausprobieren? Normalerweise müsste die Speicherroutine abgebrochen werden. Tut sie aber nicht. Ich habe nur eine komplett neue Arbeitsmappe offen und diese wird trotz Cancel = True gespeichert bzw. geht beim ersten mal der Speicherdialog auf.


    Private Sub Workbook_BeforeSaveByVal SaveAsUI As Boolean, Cancel As Boolean


    Cancel = True



    End Sub
     
  2. Andreas Killer Win User

    "workbook.close savechanges=true" im workbookClose-Event ermitteln und abfangen

    Es wird erst das beforeClose-Ereignis aktiv und danach das beforeSave.

    Genau dadurch entsteht das Problem, dass ich, wenn die Datei geschlossen wird noch nicht weiß, ob die Datei gespeichert wird (werden soll).
    Hmm... hab ich mich vertan? Sieht so aus, Entschuldigung. Spielt aber nicht wirklich eine Rolle.

    Ob die Datei gespeichert werden soll oder nicht weißt Du in dem Momemt wenn Workbook_BeforeSave aufgerufen wird.

    Und einen Dialog zeigst Du nur wenn SaveAsUI True ist. Oder prüfst irgendwas... wenn die Prüfung fehlschlägt, dann setzt Du Cancel auf True und fertig, die Datei bleibt offen.

    Soll die Datei ohne speichern geschlossen werden, dann gibst Du eine Fehlermeldung aus und setzt Du zusätzlich Saved auf True.

    Was willst Du mit Workbook_BeforeClose? Das brauchst Du in dem Fall doch überhaupt nicht.

    Wenn Workbook_BeforeClose kommt soll die Datei geschlossen werden, das kommt auch wenn
    der User nicht speichern möchte. An dem Punkt ist das nicht unterscheidbar.

    Nachtrag:

    Um beim Speichern zu wissen ob die Datei geschlossen werden soll oder nicht ist dieses Szenario denkbar:

    Option Explicit

    Dim CloseMode As Boolean

    Private Sub Workbook_BeforeClose(Cancel As Boolean)

    CloseMode = True

    End Sub

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    If CloseMode Then

    Cancel = True

    ThisWorkbook.Saved = True

    Else

    'Was auch immer

    End If

    End Sub

    Wie auch immer, Dein Code muss in Workbook_BeforeSave.

    Andreas.
  3. Andreas Killer Win User

    Excel mit Makros und Standard Dateispeicherung

    Das kann die Vorlage selber machen mit diesem Code in "DieseArbeitsmappe".

    Andreas.

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    
      If Not SaveAsUI Then Exit Sub
    
      Cancel = True
    
      With Application.FileDialog(msoFileDialogSaveAs)
    
        .FilterIndex = 2
    
        .InitialFileName = ThisWorkbook.Name
    
        If Not .Show Then Exit Sub
    
        Application.DisplayAlerts = False
    
        .Execute
    
        Application.DisplayAlerts = True
    
      End With
    
    End Sub
  4. KGehm Win User

    Excel 2007 sperrt freigegebene Datei wenn speichern einmalig in BeforeSave abgebrochen wird.

    Hallo,

    um das Problem auf die schnelle Nachzuvollziehen reicht dieser simple Code:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  if activecell.value = 1 then     cancel = true  end ifend sub
    Dann diese Datei in Excel für die Benutzung mit mehreren Benutzern freigeben.Datei mit Excel 2007 öffnen und in die aktuelle Zelle eine 1 eintragen und wieder in die Zelle gehen und In Excel 2007 auf speichern klicken. Die 1 entfernen oder sonstwas eintragen oder einfach die Zelle wechseln und dann versuchen
     mit diesem Excel 2007 oder irgendeinem anderen Excel, dassdiese Datei auch über das Netzwerk geöffnet hat die Datei zu speichern:
    Excel 2007 meldet "Die Datei ist gesperrt", Excel 2010 und Excel 2013 öffnen einen Dateirequester und bieten an unter einem Fantasienamen zu speichern und egal ob man Speichern oder Abbrechen klickt stürzen diese beiden Version
     dann ab. 
    
    Danke für jedes Feedback.
    lgKarsten
  5. Andreas Killer Win User

    "workbook.close savechanges=true" im workbookClose-Event ermitteln und abfangen

    Hierfür fange ich das Speichern im workbookbeforeclose-Event ab und gebe einen eigenen Speicherndialog aus. Klappt im normalen Betrieb auch wunderbar.
    Da ist das Problem: Workbook_BeforeClose ist das Ereignis vom dem Schließen, was aber erst nach dem Speichern aufgerufen wird.

    Nimm Workbook_BeforeSave stattdessen, dann brauchst Du den Dialog auch nur zu zeigen wenn SaveAsUI True ist.

    Andernfalls ist es ein normales Speichern, bzw. ein Speichern bei dem ein Pfad vorgegeben wird.

    Andreas.
  6. FJJT Win User

    Warum verlieren in Excel 2010 Kontrollkästchen ihre Position?

    Danke für die Antwort.



    Der von mir zitierte Hotfix ist hier schon aktiv und beseitigt diesen Fehler offensichtlich NUR bei Active-X Steuerelementen.



    Einen Workaround habe ich bereits indem ich vor dem Speichern (Workbook_BeforeSave) alle Bereiche einblende und nach dem Speichern (Workbook_AfterSave) die ursprünglichen Ausblendungen wieder herstelle. Das funktioniert und ist wesentlich einfacher als alle
    Positionen der Kontrollkästchen zu merken und wieder herzustellen.



    Meine Frage ist, gibt es eine 'echte' Fehlerbehebung für diesen Programmfehler?

    Meines Wissens war dieser Fehler in Excel 2007 nicht vorhanden.

    Ich habe noch kein Excel 2013, weiß also nicht ob der Fehler weiterhin vorhanden ist.



    Frank.
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Excel-VBA_Cancel = True in workbook_beforesave geht nicht - Microsoft Office

Die Seite wird geladen...

Excel-VBA_Cancel = True in workbook_beforesave geht nicht - Similar Threads - Excel VBA_Cancel True

Forum Datum

True Type Funktion

True Type Funktion: hallo zusammen, "enable true type features" - darum geht es. Unter Schriftart -> Erweitert -> dort bei ´True Type Features´ kann man anhaken " die Option ´Kontextvarianten verwenden´. Rechts...
Microsoft Office 30. Juli 2020

Excel 2016 Application.ScreenUpdating = False / True

Excel 2016 Application.ScreenUpdating = False / True: Hallo Liebe Community, ich habe ein Problem bei meinen Excel VBA Makros mit dem Befehl Application.ScreenUpdating = False / True. Unter 2007 und 2010 ging es super und der Bildschirm war kein...
Microsoft Office 28. August 2018

Excel geht nur noch über Excel mobile

Excel geht nur noch über Excel mobile: Ich kann im Office 365 personal Excel nur noch über Excel mobile öffnen, was kann ich tun damit das "normale"Excel wieder geht ?
Microsoft Office 25. August 2018

Excel App als StandardApp zuweisen geht nicht

Excel App als StandardApp zuweisen geht nicht: Hallo, es geht um den Laptop meiner Tochter fürs Studium. Dort ist sauber in einem Cleaninstall Windows 10 installiert. Außerdem hatten ich Office Home and Student 2010 installiert. Nun hatte...
Microsoft Office 11. Juni 2018

Edge Erweiterung "True Key"

Edge Erweiterung "True Key": Hallo, ich habe ein Problem mit der Edge Erweiterung "True Key" (Das ist ein Passwort-Manager). Wenn ich die Erweiterung im MS Store herunterlade und installiere funktioniert das noch. Wenn ich...
Apps 30. August 2017

Löschen des True Key

Löschen des True Key: Hallo, ich habe mir True Key heruntergeladen, das ist mir aber doch zu umständlich, wie kann ich ihn wieder komplett löschen??? Danke für Eure Hilfe VG Helga
Windows Insider 8. April 2017

Excel in Word Verknüpfung geht nicht.

Excel in Word Verknüpfung geht nicht.: Guten Tag liebe Community, Wenn ich auf meinem Rechner eine Excel Tabelle in Word verknüpfe, dann die Excel Tabelle verändere, aktualisiert er das auch direkt in der Word Datei. Jetzt aber zu...
Microsoft Office 22. Februar 2017
Excel-VBA_Cancel = True in workbook_beforesave geht nicht solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.