Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1556to1560
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox vbNewLine in String nachträglich einfügen

MsgBox vbNewLine in String nachträglich einfügen
14.05.2017 20:15:36
Moe
Hallo,
für ein VBA Projekt versuche ich eine Mehrsprachigkeit für MsgBoxen einzuführen mit einer Access Tabelle im Hintergrund, wo jeweils die Strings für die MsgBoxen hinterlegt sind. Die Strings enthalten u.a. Platzhalter (##0##, ##1##) für variable Stellen. Das funktioniert soweit alles sehr gut.
Jetzt habe ich nur eine MsgBox, die Zeilenumbrünche enthält:
MsgBox "Diese Nachricht" & vbNewLine & "enthält Zeilenumbrüche" & Char(10) & ":)"
Für meine Mehrsprachigkeit übergebe ich aber nur einen String, an die MsgBox:
msString = "Diese Nachricht" & vbNewLine & "enthält Zeilenumbrüche" & Char(10) & ":)"
MsgBox msString
Das funktioniert (natürlich/leider) nicht ;).
Gibt es die Möglichkeit, wie in einigen anderen Sprachen, bei VBA eine Variable bzw. Zeilenumbruch in einem String zu platzieren?
z.B:
msString = "Diese Nachricht \nenthält Zeilenumbrüche"
Viele Grüße
Moe

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vbLf oder vbCrLf o.r.T.
14.05.2017 20:27:58
Gerd
Gruß Gerd
AW: vbLf oder vbCrLf o.r.T.
14.05.2017 20:48:24
Moe
Hey,
vielen Dank für die Antwort, aber auch vbLf oder vbCrLf stehen nicht direkt in einem String.
Per & sind sie in einem String enthalten.
Ich hatte schon überlegt den String mit einer Schleife auseinander zu nehmen und dann um die vbNewLine Konstanten zu ergänzen, aber keine Ahnung wie ich das in eine MsgBox dann bekomme.
Gibt es noch andere Ideen?
Viele Grüße
Moe
AW: vbLf oder vbCrLf o.r.T.
14.05.2017 21:07:44
RPP63
Moin!
MsgBox "Diese Nachricht" & vbLf & "enthält Zeilenumbrüche" & vbLf & ":)"
Gruß Ralf
AW: MsgBox vbNewLine in String nachträglich einfügen
14.05.2017 21:07:48
Sepp
Hallo Moe,
und warum soll das
Sub test()
Dim msString As String

msString = "Diese Nachricht" & vbNewLine & "enthält Zeilenumbrüche" & Chr(10) & ":)"
MsgBox msString
End Sub

nicht funktionieren, abgesehen davon, dass es Char() in VBA nicht gibt?
Gruß Sepp

Anzeige
Ich gehe mal davon aus, dass du die Hinweise ...
14.05.2017 21:13:20
aus,
…nicht verstehst, Moe;
vbLf und vbCrLf sind Konstanten, die das/die jeweilige/n Zeichen beinhalten. Dein String muss also an der passenden Stelle unterbrochen und dort die Konstante angeschlossen wdn:
msString = "Diese Nachricht" & vbLf & "enthält Zeilenumbrüche." & vbLf & ":)"
Char(10) fktioniert deshalb nicht, weil VBA eine solche Fkt nicht kennt, denn das ist eine Xl-Fkt, die auch nicht als WorksheetFunction existiert, da es ja die entsprd vbFkt gibt → Chr(…)! Eigentl hättest du eine Fehlermeldung bekommen müssen!
Steuerzeichen ala \n u.ä., wie sie in .rtf-Dateien üblich sind, kannst du für VBA-interne Texte vergessen.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Ich gehe mal davon aus, dass du die Hinweise ...
14.05.2017 21:34:07
aus,
Hallo Luc,
vielen Dank für Deine Nachricht. Ich versuche meine Situation detaillierter zu beschreiben.
In der Spalte Description in der Access Tabelle steht folgender Eintrag:
"Fehlermeldung - Fehler: ##0## ##Neue Zeile## Fehlerbeschreibung: ##1##"
Den Eintrag frage ich per SQL ab und übergebe ihn an msgText (as String).
Durch den VBA Code wird dann ##0## durch err.number (zB 500) ersetzt und ##1## durch err.description (zB Fehler ABC).
Wie kann ich jetzt ##Neue Zeile## durch " & vbLf & " ersetzen in msgText, so dass ich die Variable dann mit MsgBox aufrufen kann inkl. den Zeilenümbrüchen.
MsgBox msgText
Das Beispiel enthält jetzt nur eine Zeile, es können aber beliebig viele Zeilenumbrüche sein und auch an unterschiedlichen Stellen.
Vielleicht habe ich die Hinweise nicht verstanden, aber die funktionieren meiner Meinung nach nicht :).
Viele Grüße
Moe
Anzeige
Mit 'Replace', ...
14.05.2017 21:42:55
Luc:-?
…Moe:
msString = "Diese Nachricht##Neue Zeile##enthält Zeilenumbrüche."
msString = Replace(msString, "##Neue Zeile##", vbLf)

Luc :-?
AW: Mit 'Replace', ...
14.05.2017 22:00:08
Moe
Hey Luc,
Perfekt, das funktioniert :)!
Viele Dank!
Moe
AW: Ich gehe mal davon aus, dass du die Hinweise ...
14.05.2017 21:43:37
aus,
Hallo Moe,
Sub test()
Dim strMsg As String

strMsg = "Fehlermeldung - Fehler: ##0## ##Neue Zeile## Fehlerbeschreibung: ##1##"

strMsg = Replace(strMsg, " ##Neue Zeile## ", "" & vbLf & "")

MsgBox strMsg
End Sub

Gruß Sepp

Anzeige
AW: Ich gehe mal davon aus, dass du die Hinweise ...
14.05.2017 21:57:47
aus,
Hey Sepp,
Überragend :), es funktioniert! In der Form hatte ich es noch nicht versucht.
Viele Grüße
Moe
Welche Funktion haben denn nun die Leer- ...
14.05.2017 23:04:50
Luc:-?
Strings um vbLf herum, Sepp?
Doch wohl eher keine…! ;-]
Gruß, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige