Microsoft Excel

Herbers Excel/VBA-Archiv

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

Warum wird Programm beendet? | Herbers Excel-Forum


Betrifft: Warum wird Programm beendet? von: Rainer
Geschrieben am: 17.11.2009 10:45:14

Hallo,

habe für eine Tabelle ein Login gemacht, das den Nutzer auf eine entsprechende Einstellung hinweisen soll.

Sub Dauer2()

Dim Dauer As Integer
Dim Nutzung As Integer

Dauer = Worksheets("Intern").Cells(8, 18)
Nutzung = Worksheets("intern").Cells(21, 16) 'P21
        
    If Dauer <= 30 Then
    
        MsgBox "Hinweis: Ein Testzugang ist zeitlich begrenzt und" & vbLf & _
               "erfordert regelmässig eine Aktualisierung." & vbLf & vbLf & _
               "Sie können diese Version noch " & Nutzung & " mal ohne" & vbLf & _
               "Aktualisierung nutzen."
               
        wert = MsgBox("Sind Sie damit einverstanden?", vbYesNo)
                If wert = vbYes Then uploadXMal
                                                  Start
                If wert = vbNo Then MsgBox "Das Programm wird nun beendet."
                                                 Beenden (Makroaufruf)
                
    Else
    
        ...
                
    End If
    
End Sub
Wenn ich nun jedoch auf ja klicke wird die Tabelle beendet obgleich ja dann eigentlich nur Start ausgeführt werden dürfte.

Wird mir hier durch die [MsgBox "Das Programm wird nun beendet."] das Makro [Beenden] als eigenständiger Schritt ausgeführt?

Gruß Rainer

  

Betrifft: AW: Warum wird Programm beendet? von: David
Geschrieben am: 17.11.2009 10:58:03

Hallo Rainer,

deine If-Zeilen bestehen nur aus einer Zeile und schließen die nachfolgende Zeile nicht mit ein. Dies ging so:

If wert = vbYes Then
   uploadXMal
   Start
Else If wert = vbNo Then
  MsgBox "Das Programm wird nun beendet."
  Beenden (Makroaufruf)
Else
  ...
End If
Nach dem Schema auch den Rest behandeln.

Gruß
David


  

Betrifft: AW: Warum wird Programm beendet? von: Rainer
Geschrieben am: 17.11.2009 11:12:28

Hallo David,

habe ein wenig getestet, da ich die Variante wie ich sie verwendet habe auch aus dem Forum habe.

Führe ich nur einen Befehl an funktioniert es.

Demzufolge kann man bei nur einem Aufruf/Befehl so verfahren wie ich es tat, bei mehreren Aufrufen muss dann wohl die "Else / End If" - Anweisung wie Du sie beschrieben hast wieder dazu.

Danke für Deine Mithilfe.

Gruß Rainer


  

Betrifft: AW: Warum wird Programm beendet? von: David
Geschrieben am: 17.11.2009 11:14:34

Es gibt auch eine Möglichkeit, alles in eine Zeile zu packen durch ein Trennzeichen. | (bin mir aber nicht ganz sicher)

Im Sinne der Übersichtlichkeit ist die gegliederte Variante aber immer zu empfehlen.

Gruß
David


  

Betrifft: AW: Warum wird Programm beendet? von: Rainer
Geschrieben am: 17.11.2009 11:22:24

Habe es schon entsprechend abgeändert.

Als VBA-Laie tüfftele ich dann mal lieber nicht selbst.

Aber Danke für Deine Anregung.

Gruß Rainer


  

Betrifft: AW: Warum wird Programm beendet? von: Luschi
Geschrieben am: 17.11.2009 11:18:08

Hallo Rainer,

Du könntest das auch als Einzeiler schrteiben, wird aber doch unsübersichtlich:

If wert = vbNo Then MsgBox "Das Programm wird nun beendet." : Beenden (Makroaufruf)

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Warum wird Programm beendet? von: Rainer
Geschrieben am: 17.11.2009 11:24:49

Hallo Luschi,

danke, das war dann wohl das Trennzeichen, welches David meinte.

Gruß Rainer


  

Betrifft: AW: Warum wird Programm beendet? von: Rainer
Geschrieben am: 18.11.2009 12:43:29

Hallo Luschi,

: in anderem Sub erfolgreich getestet, nochmals Danke

Gruß Rainer


Beiträge aus den Excel-Beispielen zum Thema "Warum wird Programm beendet?"