Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Bestätigen von Meldungen in anderer Arbeitsmappe

Betrifft: Bestätigen von Meldungen in anderer Arbeitsmappe von: Dirk
Geschrieben am: 20.04.2014 14:06:06

Hallo Gemeinde,

ich möchte aus Arbeitsmappe 1 ein Makro in Arbeitsmappe 2 starten.
Klappt auch prima, jedoch sind zu Ende des Makros zwei Infofenster, die mit OK bestätigt werden müssen.
Ich habe gedacht mit .EnableEvents könnte ich das unterdrücken, funktioniert aber leider nicht. Die zwei Infofenster müssen immer noch von Hand geklickt werden.

Hier der Code:

Application.EnableEvents = False
Application.Run (Chr(39) & neu), ohne, drucken, pdf
Application.EnableEvents = True

Hat jemand eine Idee?

Gruß

Dirk

  

Betrifft: noch keine Idee.... von: Oberschlumpf
Geschrieben am: 20.04.2014 14:10:28

...aber ne Frage

Hi Dirk

wär ja nett gewesen, wenn du uns auch die Meldungen gepostet - besser ne Bsp-Datei zur Verfügung gestellt - hättest.

Wie sollen wir antworten können, wenn wir nur gerad mal wissen, wie dein Makro in der anderen Datei heißt, aber nicht sehen, was das Makro macht?

Ciao
Thorsten


  

Betrifft: AW: noch keine Idee.... von: Dirk
Geschrieben am: 20.04.2014 14:31:04

Hallo Thorsten,

ich muss es leider beschreiben da ich das ganze Projekt nicht ins Netz stellen kann.

Es geht um projektbezogene Arbeitszeiten. Wenn ich in der 1. Arbeitsmappe (der ältesten) eine Änderung vornehme, müssen in allen darauffolgenden Arbeitsmappen diese Änderungen ebenfalls durchgeführt werden.

Zum Laufende des Makros in der 2. Arbeitsmappe (welches ich mit Application.Run aus Mappe 1 aufgerufen habe kommt diese Passage:

If a <> "" Then
MsgBox (strFilenametest & " konnte nicht erstellt werden!")
Else
MsgBox (Left(strFilename, 20) & ".pdf erstellt")
End If

Diese Meldung muss mit einem Klick auf OK bestätigt werden. Danach kehrt das Programm wieder nach Arbeitsmappe 1 zurück und ruft die nächste Arbeitsmappe zur Korrektur auf.

Ich hoffe das reicht zur Erklärung.

Gruß

Dirk


  

Betrifft: AW: noch keine Idee.... von: Oberschlumpf
Geschrieben am: 20.04.2014 15:03:17

Hi Dirk

a) ich wollte NICHT die Original(Projekt)Datei, sondern eine BSP-Datei, in der das Problem nachjvollziehbar ist.

b) MsgBoxen, die im Code programmiert sind, und ausgeführt werden, können mit DisplayAlerts = False nicht unterdrückt werden.
Solche MsgBoxen programmiert man doch, damit sie angezeigt werden.

Ich denk, du musst deinen Code entsprechend anpassen, damit eben von dir programmierte MsgBoxen nur dann, wenn gewollt, angezeigt werden.

Ciao
Thorsten


  

Betrifft: AW: noch keine Idee.... von: Dirk
Geschrieben am: 21.04.2014 11:40:34

Hi Thorsten,

zu b) dass diese Methode nicht funktioniert, ok. Aber ist es sicher, dass es keine Möglichkeit dafür gibt.

Ich werde mich jetzt daran machen den Code anzupassen.....

Trotzdem vielen Dank an alle.

Dirk


  

Betrifft: AW: noch keine Idee.... von: Dirk
Geschrieben am: 21.04.2014 11:40:58

Hi Thorsten,

zu b) dass diese Methode nicht funktioniert, ok. Aber ist es sicher, dass es keine Möglichkeit dafür gibt?

Ich werde mich jetzt daran machen den Code anzupassen.....

Trotzdem vielen Dank an alle.

Dirk


  

Betrifft: AW: Bestätigen von Meldungen in anderer Arbeitsmappe von: fcs
Geschrieben am: 20.04.2014 14:16:54

Hallo Dirk,

mit Application.EnableEvents = False/True werden automatisch startende Ereignismakros deaktiviert/aktiviert.

Warndialoge/Hinweise kannst mit
Application.DisplayAlerts = False
deaktivieren

und mit
Application.DisplayAlerts = True
wieder aktivieren.

Das erneute Aktivieren ist hier wichtig, da der Status False sonst bis zum Schließen von Excel erhalten bleibt.

Gruß
Franz


  

Betrifft: AW: Bestätigen von Meldungen in anderer Arbeitsmappe von: Dirk
Geschrieben am: 20.04.2014 14:42:26

Hallo Franz,

ich habe es so umgeändert

Application.DisplayAlerts = False
Application.Run (Chr(39) & neu), ohne, drucken, pdf
Application.DisplayAlerts = True

leider ohne Erfolg.
Die Meldung von der MSG Box bleibt bestehen und wartet auf ein Klicken auf OK.

Gruß

Dirk


  

Betrifft: AW: Bestätigen von Meldungen in anderer Arbeitsmappe von: Tino
Geschrieben am: 20.04.2014 14:51:44

Hallo,
erstelle doch in dem aufzurufenden Makro einen Optionalen Parameter vom Typ Boolean.

Application.Run (Chr(39) & neu), ohne, drucken, pdf, True
Im anderen Code dann
if Not booMeldung Then
If a <> "" Then
MsgBox (strFilenametest & " konnte nicht erstellt werden!")
Else
MsgBox (Left(strFilename, 20) & ".pdf erstellt")
End If
end if



  

Betrifft: hier noch ein Beispiel von: Tino
Geschrieben am: 20.04.2014 14:58:07

Hallo,

Sub Beispiel()
    Application.Run "MeinMakro", 1, 2, 3, False
End Sub

Sub MeinMakro(V1, V2, V3, Optional booMeldung As Boolean = True)
Dim a
If booMeldung Then
    If a <> "" Then
        MsgBox (" konnte nicht erstellt werden!")
    Else
        MsgBox (".pdf erstellt")
    End If
End If
End Sub
Gruß Tino


 

Beiträge aus den Excel-Beispielen zum Thema "Bestätigen von Meldungen in anderer Arbeitsmappe"