VBA(Excel) Automatische Antowrt auf MsgBox

Januar

Level-2
Beiträge
644
Reaktionspunkte
266
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?
 
@Larry: Wie kann ich denn auf die MessageBox-Abfrage Einfluss nehmen?

Auf die Messagebox-Abfrage selbst kannst du keinen Einfluß nehmen - du kannst sie nur halt ggf. umgehen.
Um dazu aber konkreter werden zu können solltest du mal das besagte Script hier einstellen ...

Gruß
Larry
 
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