Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Application.Displayalerts in anderer Mappe
#11
@Kuwer: Danke, der englische Ausdruck hat es schon klar gemacht.

Code:
Option Explicit
Dim xl As Excel.Application

Sub CrossProc()
   Set xl = New Excel.Application
   With xl
       .DisplayAlerts = False
       .Visible = True
   End With
   
   Debug.Print xl.DisplayAlerts ', xl.ActiveSheet.Name
   
End Sub
In der zweiten Instanz xl ist Displayalerts auch nach Ende von CrossProc auf False.
Erst wenn ich xl derefernziere ist es wieder True
Antworten Top
#12
Hi ihr,

das freut mich, dass ich euch so zum heiter diskutieren gebracht habe :).

Ich habe das Problem durch Probieren zwar gelöst, aber vll kann mir kurz einer erklären wieso es so gelöst werden konnte. Liegt es daran, dass die Alerts beim Öffnen einer anderen Mappe automatisch auf true gestellt werden? Ist das so ein "prozessübergreifender Code"?
Kann man also zwei Instanzen offen haben? Die alte Mappe, in der die Displayalerts auf false sind und die neue Mappe, in der sie auf true stehen?

Gruß Tim
Antworten Top
#13
Hallo Tim,

meine Demomakros beantworteten Deine Fragen zum Ermitteln der (momentanen) DisplayAlerts-Eigenschaft und zur "Lebensdauer" der Abschaltung dieser.
Leider ignoriertest Du meine Frage zum sehr frühen Zeitpunkt der Deaktivierung. Nur das Drücken des Dankebuttons bringt Dich und andere Antworter nicht unbedingt weiter. Wink
Was das Makro "speichern" macht, blieb (leider) Dein Geheimnis. Undecided

Gruß Uwe
Antworten Top
#14
(16.04.2019, 19:06)Storax schrieb: In der zweiten Instanz xl ist Displayalerts auch nach Ende von CrossProc auf False.
Erst wenn ich xl derefernziere ist es wieder True

Ich glaube, dass Dein Beispiel nichts mit "prozessübergreifend" zu tun hat, da es da ja um mehrere Excel-Instanzen geht.
DisplayAlerts ist ja auf die jeweilige Excel-Application, also -Instanz, bezogen.

Gruß Uwe
Antworten Top
#15
Hi Uwe,

ich hatte die Diskussion zwischen Ralf, dir und Storax irgendwie so verstanden, dass ihr euch gegenseitig etwas beweist - eure Codes hatte ich nicht verstanden. Auf deine Frage, wieso ich den Befehl so früh im Makro eingebaut habe, hatte ich für mich schon so beantwortet, dass ich zeitgleich schrieb, dass ich ihn nun später eingebaut habe und der Code somit funktioniert :). Aber ich gebe dir recht - ich hätte dir antworten sollen, sorry!

Das Sub speichern kommt als Auslöser für das Problem nicht in Frage, da ich es zum Probieren ausgeklammert habe. Im Prinzip speichert es einfach die Mappe und erstellt eine Sicherheitskopie in einem bestimmten Pfad. Da dieser Pfad nur auf dem Arbeits-PC vorhanden ist, hatte ich diese Codezeile von Anfang an mit einem Hochkomma unbeachtet gelassen.

Ich hatte das so verstanden, dass du bereits weißt, warum mein erster Code nicht funktioniert hat - dem ist dann nicht so und wir suchen noch immer die Lösung bzw. den Grund, wieso meine Lösung nun funktioniert?

Huh Huh Huh Huh 


Gruß Tim
Antworten Top
#16
Hallo Tim,

(16.04.2019, 17:03)EasY schrieb: Nach vielen Versuchen dürfte ich des Rätsels Lösung gefunden haben: Ich habe vor dem Löschen der Blätter das Workbook zunächst aktiviert und dann den Application.Displayalerts = false - Befehl erneut eingegeben.

auf das fett markierte kommt es an.
Im konkreten Fall sollen Löschabfragen unterdrückt werden. Also sollte man es auch genau dort, wo es gebraucht wird, unterdrücken und danach wieder setzen und nicht wahllos irgendwo und wiederholt. Deine Frage, wie Du den Zustand abfragen kannst, dürfte sich gar nicht stellen, wenn Du die Kontrolle über Deinen Code behältst. Wink

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste