VBA(Excel) Automatische Antowrt auf MsgBox

Januar

Level-2
Beiträge
221
Reaktionspunkte
47
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, Menschen.

Ich hoffe, ich bin hier in dem Forumsteil richtig...

Zu meiner Frage:
Ich schreibe ein kleines Programm mit VBA in Excel. Bei der Ausführung wird unter anderem eine Funktion ausgeführt, die dafür sorgt, dass Excel mir eine Message-Box zeigt ("In den Arbeitsblättern, die Sie löschen möchten, könnten Daten vorhanden sein. Um die Blätter endgültig zu löschen, drücken Sie Löschen." Löschen/Abbrechen)
Ich möchte nun in meinem Programm eine Zeile haben, die diese Abfrage automatisch mit "Löschen" beantwortet, sodass der Benutzer die Abfrage nicht manuell wegklicken muss.

How do I do?

Mit freundlichen Grüßen
Januar
 
Was heißt "in meinem Programm" ? Du meinst hier das Excel-Sheet ?
Du kannst eine MessageBox nicht fernsteuern - du kannst aber ein weiteres Script / eine weitere Methode erstellen, die das Gleiche ohne die MessageBox-Abfrage und der anschließenden Auswertung des Results macht.
Oder du übergibst der gleichen Methode einen Parameter aus dem du ableitest, dass die MessageBox-Abfrage komplett übergangen werden soll. In diesem Fall wird die Methode ja sehr wahrscheinlich von einem anderen Punkt aufgerufen ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau, die Module und Sub-Prozeduren des Excel-Sheets sind gemeint.
In der Excel-Hilfe steht auch, dass das Dialogfeld standardmäßig angezeigt wird. Meine Frage zielt jetzt darauf ab, diesen Standard zu umgehen.
Ist das möglich?

@Larry: Wie kann ich denn auf die MessageBox-Abfrage Einfluss nehmen?
 
Das "Script" ist nur ein aufgezeichnetes Makro. Dabei wurde ein Tabellenblatt ausgewählt (Rechtsklick) und dann gelöscht.

Code:
ThisWorkbook.Worksheets("Name").Select
ActiveWindow.SelectedSheets.delete

Die Abfrage ist halt das Windows-typische "Sind Sie sicher?". Und ich möchte das Programm derart ummodellieren, dass Windows nicht fragt, bzw. dass der Benutzer nicht antworten braucht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du schon mal an so etwas wie das gedacht:

Code:
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True

Das sollte die Abfrage unterdrücken.
Einfach vor Deinem Löschen die Alerts abschalten und danach wieder an.
 
> Du kannst eine MessageBox nicht fernsteuern
wenn man mit der Maus auf OK drückt, wird eine Windowsmessage gesendet.
So eine Message kann auch von anderen programmen kommen [ PostMessage(...) ]

So ein, nicht ganz einfaches, proggi hab ich schon mal gemacht, zum "fernsteuern" .
"Du kannst eine MessageBox nicht fernsteuern" so schon. Ist wohl ein hack.
 
Zurück
Oben