Das Archiv des Excel-Forums

msg box

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
    Bild

    Betrifft: msg box
    von: bison

    Geschrieben am: 23.09.2003 10:05:22

    Hallo liebes Forum!

    folg. SUB + msg Box habe ich erstellt, für die schaltflächen ja und nein:

    
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    a = MsgBox("Wenn nicht sicher, dass alle erforderlichen Daten eingegeben wurden, überprüfen Sie dies bitte noch einmal. Fehlende oder falsch eingegebene Werte führen zu falschen Berechnungen der PivotTable", _
    4 + 48, "Liebe(r) " & Application.UserName)
    End Sub
    


    So, wo und wie kann ich jetzt eingeben, dass bei "ja" gespeichert wird, bei "nein" nicht gespeichert wird. außerdem die Frage ob wirklich gespeichert werden soll!

    Ich danke euch schon mal!!!!
    Bild


    Betrifft: AW: msg box - Rückgabewert
    von: Galenzo
    Geschrieben am: 23.09.2003 10:16:14

    Dazu mußt du den Wert auswerten :-), den die FUNKTION (!) msgbox zurückgibt:
    In deinem Fall hast du den schon richtigerweise einer Variablen (a) zugewiesen.
    Das Beispiel, daß die auch F1 (!!!) liefert :



    If a = vbYes Then    ' Benutzer hat "Ja" ' gewählt
          .....               
    Else                 ' Benutzer hat "Nein" gewählt.
          .....               
    End If




    Bild


    Betrifft: AW: msg box - Rückgabewert
    von: Der Befehl für speichern / nicht speichern?
    Geschrieben am: 23.09.2003 10:18:02

    Hey danke!!!

    Das ging ja schnell!

    Wie ist denn der Befehl für speichern, bzw. nicht speichern?

    MfG


    Bild


    Betrifft: AW: msg box - Rückgabewert
    von: Andi_H
    Geschrieben am: 23.09.2003 10:23:38

    hi,

    If a = vbYes Then
    ThisWorkbook.Save
    Else
    Cancel = True
    End If

    gruß

    andi


    Bild


    Betrifft: AW: msg box - Rückgabewert
    von: Bison
    Geschrieben am: 23.09.2003 10:32:02

    Das versteh ich nicht!

    1. sagt der mir, end if ohne if block,
    2. mit dem else......... klappt das nicht

    ..........?


    Bild


    Betrifft: AW: msg box - Rückgabewert
    von: Galenzo
    Geschrieben am: 23.09.2003 10:38:09

    Du mußt das genauso abtippen. Speziell die Zeilenwechsel!


    Bild


    Betrifft: und noch was...........
    von: Bison
    Geschrieben am: 23.09.2003 10:50:18

    Ah so!!!!!!!!!!!

    Und eine Frage habe ich noch:

    ist es irgendwie möglich, den Text in der msg Box manuell auf mehrere Zeilen zu verteilen? evtl. mit Absatz. Ich mein aber nicht im vba editor sondern wirklich in dem Fenster nachher........

    ?????


    Bild


    Betrifft: AW: und noch was...........
    von: Galenzo
    Geschrieben am: 23.09.2003 10:58:09

    na klar geht dös:
    Dazu setzt du den Text zeilenweise zusammen, für den Zeilenwechsel gibt es die
    vordefinierte Konstante "vbCrLf".
    Also z.B. so:
    a= MsgBox("Text 1.Zeile" & vbCrLf & "zweite Zeile" & vbCrLf & "dritte Zeile", vbYesNo....

    Viel Erfolg.


    Bild


    Betrifft: Was würde man nur machen ohne Euch?
    von: Bison
    Geschrieben am: 23.09.2003 11:02:56

    Klappt!!!! (Du denkst jetzt wahrscheinlich: "natürlich klappt das"?)

    kann man auch nen absatz machen?


    Bild


    Betrifft: Oh man, bin ich am nerven!!!
    von: Bison
    Geschrieben am: 23.09.2003 11:07:08

    Kann man den Text auch mittig schreiben?


    Bild


    Betrifft: AW: Oh man, bin ich am nerven!!!
    von: Galenzo
    Geschrieben am: 23.09.2003 11:16:36

    Absatz: vbCrLf & vbCrLf (also 2 Leerzeilen)
    Zentriert: Nö, weder zentrieren, noch irgendwie formatieren (fett/rot..)
    Abhilfe: Userform basteln und zeigen/auswerten/verbergen
    Notwendig: noch bessere Kenntnisse VBA
    Sonst: mußt du versuchen, in deiner MsgBox mit Leerzeichen eine gewisse
    Textanordnung herzustellen
    Nerven: mich nerven eigentlich nur Fragen, die doppelt und jeden Tag auf's
    neue gestellt werden, ohne F1 oder die Recherche zu bemühen :-)


    Bild


    Betrifft: AW: Oh man, bin ich am nerven!!!
    von: Bison
    Geschrieben am: 23.09.2003 11:21:43

    Vielen Dank!!!
    Wenn ich hier Fragen gestellt habe, die Karl hätte beantworten können, tuts mir leid. Das Problem ist dass ich in der Arbeit bin und das prog. mit VBA eigentlich nicht vorgesehen war, daher die Hilfe nicht drauf ist 


    Bild


    Betrifft: AW: Nein, DU nervst nicht.
    von: Galenzo
    Geschrieben am: 23.09.2003 11:55:21

    Nein nein, DU warst damit garnicht gemeint.
    Ich wollte eigentlich nur sagen, WAS mich generell an Fragen nervt.
    Und die Hilfe solltest du unbedingt noch nachinstallieren - da kann man viel dazulernen!
    Bis denne...


    Bild


    Betrifft: AW: msg box - Rückgabewert next msg Box
    von: Bison
    Geschrieben am: 23.09.2003 10:54:42

    Mir ist gerade was eingefallen!

    Wenn man dann nein drückt, um die Daten nochmal zu kontrolliern, ist es möglich, dass Excel es erkennt, dass man nein gedrückt hat und beim speichern danach eine andere msg box erscheint?
    Aber beim nächsten Öffnen halt wieder die erste.........

    versteht man meine tolle Formulierung?

    :-)


    Bild


    Betrifft: AW: msg box - Rückgabewert
    von: Andi_H
    Geschrieben am: 23.09.2003 10:39:07

    versteh ich auch nicht, habs versucht, bei mir klappts.
    Versuch diesen Code mal:

    
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    a = MsgBox("Wenn nicht sicher, dass alle erforderlichen Daten eingegeben wurden, überprüfen Sie dies bitte noch einmal. Fehlende oder falsch eingegebene Werte führen zu falschen Berechnungen der PivotTable", _
    4 + 48, "Liebe(r) " & Application.UserName)
    If a = vbNo Then Cancel = True
    End Sub
    



    Bild


    Betrifft: mh...... das klappt!
    von: Bison
    Geschrieben am: 23.09.2003 10:43:19

    Jo, so klappt es!!!!!

    Dank Dir!!!!!!

    MfG


    Bild


    Betrifft: AW: msg box - Rückgabewert
    von: Galenzo
    Geschrieben am: 23.09.2003 10:23:57

    Gut, wenn du nur speichern willst, wenn ja gedrückt wurde, dann reicht:
    If a =vbYes Then
    ActiveWorkbook.Save
    (else
    exit sub) ' falls du die SUB verlassen willst
    end if


     Bild