HERBERS Excel-Forum - das Archiv
Msgbox zeigt nur die erste Zeile
Jörg-HH

Hallo zusammen
warum wird mir von dieser MsgBox nur die erste Zeile angezeigt?
MsgBox " Fertig !" & vbLf & vbLf & _
"Die folgende Speicherabfrage beim Schließen" & vbLf & _
"bitte mit Ja quittieren!", , ""
Hab's schon mit Klammern versucht, geht aber nicht :-(
Grüße - Jörg

AW: Msgbox zeigt nur die erste Zeile
Josef

Hallo Jörg,
die MsgBox wir bei mir korrekt dargestellt!
Gruß Sepp

MsgBox Zeilenumbruch
Beate

Hallo Jörg,
habe auch kein Problem. Aber dann probiere mal diesen Code:
Sub Test()
    MsgBox " Fertig !" & vbCrLf & vbCrLf & _
        "Die folgende Speicherabfrage beim Schließen" & vbCrLf & _
        "bitte mit Ja quittieren!"
End Sub


Guckst Du: MsgBox - Zeilenumbruch
Gruß,
Beate
vbCrLf hilft auch nicht...
Jörg-HH

Hallo Beate
mit vbCrLf geht's auch nicht. Hätte mich auch gewundert - alle anderen MsgBoxen brechen anstandslos bei vbLf um...
Grüße - Jörg
upps...
Jörg-HH

...seltsam - ja, Sepp - ich hab das jetzt mal in eine Dummydatei ausgegliedert - dort wird die Meldung auch korrekt angezeigt. Ist an dem Drumherum was faul?
''############# Einrichten des 2. Durchlaufs ##############
...
ElseIf Worksheets("ToDo").CmBtnRücklaufdatei.Caption = "2.Durchlauf" Then
MsgBox "Es wird nun für " & ProjName & " " & TPName & " " & vbLf & _
"die Kalkulation für den" & vbLf & "ZWEITEN Durchlauf eingerichtet.", vbOKOnly, "Kalkulation erstellen"
Worksheets("Formular").Range(wsConfig.Range("B13").Value).Value = 2
Worksheets("ToDo").CmBtnRücklaufdatei.Caption = "3.Durchlauf"
Worksheets("ToDo").CmBtnRücklaufdatei.Enabled = True
ActiveWorkbook.Save
MsgBox " Fertig !" & vbLf & vbLf & _
"Die folgende Speicherabfrage beim Schließen" & vbLf & _
"bitte mit Ja quittieren!", , ""
''############# Einrichten des 3. Durchlaufs ##############
ElseIf Worksheets("ToDo").CmBtnRücklaufdatei.Caption = "3.Durchlauf" Then
...
Grüße - Jörg
Hier erkenne ich nichts Besonderes,...
Luc:-?

...Jörg,
es könnte aber sein, dass irgendeine Variable einen Fehlerwert liefert, dann wird die MsgBox übergangen. Fehlerwerte können hier nur über Textumwandlung [mit CStr(...)] dargestellt wdn.
Da du aber schreibst, dass nur die 1.Zeile angezeigt wird, muss wohl eine Variable einen so langen Text enthalten, dass er zwar bis zum Zeilenlängemaximum angezeigt wird, danach dann aber nichts mehr Platz hat, weil das Zeichenanzahlmaximum für MsgBoxes mit dieser einen Variable überschritten wird. Wenn man das an der erscheinenden MsgBox nicht erkennen kann, würde ich das als „Verkettung unglücklicher Umstände“ bezeichnen — man kann es auch schlicht Praxis nennen oder mit Tom Hanks „Shit happens!“ titulieren... ;-)
Gruß Luc :-?
@Luc : Da könntest Du Recht haben
NoNet

Hey Luc,
Deine Theorie könnte stimmen - doch dazu muss nicht einmal eine besondere "Länge" des Textes definiert sein, es genügt bereits 1 Zeichen :
Sub test()
Dim strText As String * 1
MsgBox "abc" & strText & vbLf & "xyz"
End Sub
@Jörg : Hast Du den String etwa SO definiert ?
Gruß, NoNet
@NoNet: Die einzige Möglichkeit, dass die...
Luc:-?

...Box erscheint und scheinbar nur 1 Zeile enthält, NoNet,
scheint mir doch zu sein, dass eine Variable mit einem Text geladen wird, der jede Menge Leerzeichen oder Vglbares enthält. Könnte bei Übernahme aus DBn schon mal vorkommen. Dadurch könnte die MaxZeichenzahl von 1023 überschritten wdn. Anhaltspkt für einen solchen Fall wäre, wenn die Box mehr Zeilen, wenn auch leer, zeigt, als für eine Zeile Text erforderlich wären (so optische 2-3 Zeilen mehr)...
Dass es in diesem Fall so ist, habe ich getestet!
Gruß Luc :-?
LOL - falsche Box... :-)
Jörg-HH

oh mannooo, Leute - nicht zu fassen:
Ich hab an mehreren Stellen des Codes so eine simple Fertig-Meldung, und ich merke gerade, daß ich mit der textlichen Ergänzung an der falschen Meldung gebastelt habe...
Da verzweigt sich im Ablauf Einiges und läuft am Ende wieder zusammen, und ich hab schlicht die Übersicht verloren :-))
naja - auch nach zwei Jahren autodidaktischer VBA-Karriere empfinde ich mich immer noch als Anfänger - zu Recht, wie man sieht...
Wünsch euch allen ein schönes WE
Jörg
Naja, wenigstens haste'n'paar Zusatzinfos...orT
Luc:-?

schöWE dito, Luc :-?