Excel 2010 - "Application.DisplayAlerts = FALSE" funktioniert nicht

Don Blech

Newbie
Dabei seit
Jan. 2018
Beiträge
6
Hallo liebe Forengemeinde,

ich suche bereits seit längerem im Internet nach einer Lösung zu meinem Problem und hoffe nun auf Eure Hilfe...

Ich habe ein Makro geschrieben, bei dem das Arbeitsblatt gespeichert werden soll OHNE dass das Meldungsfenster
"Speichern" mit dem Inhalt "Speichern als: [Dateipfad\Dateiname]" erscheint.

Das Speichern erfolgt (aus bestimmten Gründen) über eine Prozedur und beginnt folgendermaßen:

Sub Schließen()
Dim lgLB As Long
Dim strPfad As String
Dim strDateiname As String

'Warnmeldungen ausschalten
Application.DisplayAlerts = False

'Statuszeile ausblenden
Application.DisplayStatusBar = False
(...)


Aber egal wo ich "Application.DisplayAlerts = False" innerhalb der Prozedur verwende, IMMER erscheint das
Hinweisfenster.
Nun ist mir folgendes aufgefallen:
Wenn ich den Code im Einzelschritt kompiliere und den Cursor über "Application.DisplayAlerts" lasse, wird beim
Aufruf der Folgezeile der Wert NICHT von "True" auf "False" geändert!?!

Wenn ich den Cursor dann auf die Folgezeile setze und wieder F8 drücke, ändert sich der Wert bei
"Application.DisplayStatusBar" von "True" auf "False" (Wie es auch sein soll...).

Jetzt die Masterfrage:
Warum ändert sich der Wert ausgerechnet bei ".DisplayAlerts" nicht von "True" auf "False"?

Kann es an irgendwelchen Einstellungen liegen? Wenn ja, an welchen?

Ich bin absolut ratlos und für jede Hilfe dankbar!

Gruß
Paule
 

paule123

Lt. Junior Grade
Dabei seit
Okt. 2006
Beiträge
446
Code:
...
ChDir "C:\Test"
ActiveSheet.SaveAs Filename:= _
"C:\Test" & Z & ".csv", FileFormat _:=xlCSV, CreateBackup:=False
        
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Application.DisplayAlerts = True
    
    ws.Select
    
End Sub
So sieht das Ende von einem Macro von mir aus. Das speichert Werte aus einem Arbeitsblatt als csv, und da funktioniert die Abschaltung von DisplayAlerts. Vlt. musst du den Wert zwingend wieder auf True setzen?
 

aroxx

Lieutenant
Dabei seit
März 2012
Beiträge
892
Ich glaube, dass man diese Meldung nicht über DisplayAlerts ausblenden kann.

Irgendwo rufst vermutlich "aktuellesWorkbook.Close" auf. Versuch mal das in "aktuellesWorkbook.Close False" zu ändern.
Dann schließt er das Workbook ohne zu speichern.
 

Don Blech

Newbie
Ersteller dieses Themas
Dabei seit
Jan. 2018
Beiträge
6
Danke erstmal für die zügigen Antworten...

@paule123:
O.k. ... Das hab ich nicht mehr dazu geschrieben. Nach der Speicherroutine setze ich den Wert wieder auf "True",
auch wenn das eigentlich nicht mal nötig wäre, da Excel das systemseitig nach Abarbeiten der Prozedur von sich
aus macht (Wenn alles normal läuft :evillol:)

Also kann es das nicht sein.
Dein zweiter Hinweis mit der Dateiendung... kann ich nicht nachvollziehen, aber ich werde es trotzdem mal ausprobieren.

@aroxx:
Warum sollte ausgerechnet dieses blöde Hinweisfenster NICHT auszublenden sein?
Schießlich kannst Du mitttels Code verhindern, dass eine Datei geschlossen wird ohne sie zu speichern und damit evtl.
stundenlange Arbeit für`n A...llerwertesten machen!

Deinen Hinweis mit "Workbook.close" hab ich sofort gecheckt. Aber leider erfolglos...
Alle savechanges-Einträge stehen auf "False".



Nur so zur Info... Für mich interessant an der Unterdrückung dieses Hinweisfensters ist lediglich die Tatsache, dass
unter bestimmten Umständen eine Backup-Datei angelegt wird, von deren Existenz bzw. die Ereignisse, die zur Erstellung dieser Backup-Datei führen, der Nutzer nichts wissen soll. :p
Und beim Anlegen dieser Backup-Datei erscheint nun leider auch so ein tolles Fenster mit Pfadangabe etc.. :rolleyes:
Ergänzung ()

Update:

Versuch gescheitert.
Auch bei "Umwandlung" in CSV weigert sich Excel die Hinweisfenster zu unterdrücken...
 

simpsonsfan

Commander
Dabei seit
Feb. 2008
Beiträge
2.870
Wie sieht denn dein Code zum Speichern aus? Ich meine, der Speichern unter...-Dialog sollte eigentlich standardmäßig gar nicht kommen, wenn du mittels vba und workbook.saveas speicherst. Kann mich aber natürlich auch irren.

Um welche Excel Version geht es denn eigentlich?
 

Don Blech

Newbie
Ersteller dieses Themas
Dabei seit
Jan. 2018
Beiträge
6
Moin :D

@simpsonsfan:
Wie die Überschrift im Posting schon sagt.... Excel 2010

Und es geht NICHT um den "Speichen unter"-Dialog !!
Sondern um das Hinweisfenster (ohne Schaltflächen!), das immer während des Speichervorgangs auf geht
und den aktuellen Speicherpfad enthält.

@simpsonsfan und cumulonimbus8

Der Code zum Speichern is total normal und unspektakulär...

AvtiveWorkbook.SaveAs Filename:="" & strPfad & "" & strDateiname & "", FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", CreateBackup:=False



DARAN kann es ja auch überhaupt nicht liegen, denn wie ich in der Problembeschreibung geschrieben hatte:

Wenn ich das Makro schrittweise mit F8 kompiliere, wechselt der Wert von Application.DisplayAlerts NICHT von "True" auf "False"!!


Danke trotzdem :confused_alt: :heul:
Ergänzung ()

Nochmal Moin...

Ich habe mir gedacht, dass es vielleicht hilft, wenn man sich das Problem live und in Farbe anschauen kann.
Also los:

Ich starte die Prozedur mit F8 und schaue, welchen Wert meine "Problemkinder" aktuell haben:
Ausgangsposition 1.jpg
Ausgangsposition 2.jpg

Alles auf "True"/"Wahr". Supi.

Jetzt gehe ich die Befehlszeile mit F8 einzeln durch und schaue auf die Änderungen...
DisplayAlerts.jpg
Tja. Laut dem Text unter dem Cursor immer noch "Wahr"; laut Direktfenster "Falsch" ?!?!

Dann mal weiter:
DisplayStatusBar.jpg
Aha. Hier klappt alles wie es soll ?!?!

Was ist hier faul??
:pcangry:

Dank an alle, die sich um eine Aufklärung bemühen...
 
Zuletzt bearbeitet:

simpsonsfan

Commander
Dabei seit
Feb. 2008
Beiträge
2.870
https://stackoverflow.com/questions...ication-displayalerts-false-in-excel-2016-vba

Dein Problem ist reproduzierbar aber nur im Debugger (geil, ne?).

In einer kleinen Testmappe sehe ich auch keine Meldung während des Speicherns, vielleicht aber auch nur, weil die Mappe so klein ist und das Speichern sofort fertig ist. Alternativ könntest du ja auch während des Speicherns Application.ScreenUpdating auf False setzen, dann sollte man auch nichts sehen.

Ach ja, und natürlich keine Nutzer ohne deren Zustimmung überwachen oder ausspähen und dergleichen.
 

Don Blech

Newbie
Ersteller dieses Themas
Dabei seit
Jan. 2018
Beiträge
6
Danke für den weiteren Hilfeversuch, aber leider blieb auch der erfolglos.
Ebenso wie der "versteckte" Hinweis in dem verlinkten Post, den Befehl durch "EnableEvents" einzuschließen.

Eigentlich sollten ja keine Systemmeldungen aufpoppen wenn man innerhalb einer Sub die "DisplayAlerts" ausschaltet...
Dafür gibt´s den Befehl ja... eigentlich... :kotz:

Ach ja, und natürlich keine Nutzer ohne deren Zustimmung überwachen oder ausspähen und dergleichen.
Nich wirklich.. Es geht hier darum, die Manipulation von Daten zu unterbinden (ob gewollt oder ungewollt) und die Möglichkeit, eine "saubere" Originaldatei mit allen Daten zu erhalten.
Es geht nun mal leider nicht anders, da ein Blattschutz oder dergleichen zu wenig Flexibilität bietet.
Gebranntes Kind....

:( ;)
 

simpsonsfan

Commander
Dabei seit
Feb. 2008
Beiträge
2.870
ScreenUpdating = false hat auch nicht funktioniert? Oder ist das aus anderen Gründen keine Lösung?

Wenn man das Problem nicht reproduzieren kann, ist es immer schwer, was zu tun. Denn wie gesagt, bei mir ging (ebenfalls unter Excel 2010) kein Hinweisfenster auf.
 

Don Blech

Newbie
Ersteller dieses Themas
Dabei seit
Jan. 2018
Beiträge
6
Moin simpsonsfan,

das ist richtig - ohne Reproduzierbarkeit isses Mist...

Und leider liegt es nicht mal an irgendwelchen dämlichen falschen Einstellungen, die dafür sorgen, dass das nicht klappt.
Denn - wie bei Dir - läuft der Code, in einer neuen leeren Excel-Datei, ohne das Öffnen von Hinweisfenstern.

Echt bekloppt....
 

Don Blech

Newbie
Ersteller dieses Themas
Dabei seit
Jan. 2018
Beiträge
6
Moin aroxx,

sorry, dass ich erst so spät antworte.

Ja. Hab ich sofort ausprobiert, aber auch wieder ohne Erfolg.

Trotzdem danke für den Hinweis :daumen:
 
Top