Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

Formatierung des Msgbox-Inhalts

Formatierung des Msgbox-Inhalts
Sibylle
Guten Abend,
ist es mit Excel 2010 möglich den Inhalt einer msgbox zu formatieren?
Beispiel: msgbox "Der berechnete Wert beträgt: " & betrag
Det Text soll zB kursiv, der Betrag in Schriftgröße 16, Schriftfarbe rot sein.
Gruß
Sibylle

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Nein! o.T.
09.10.2011 18:42:23
Josef
« Gruß Sepp »

AW: Formatierung des Msgbox-Inhalts
09.10.2011 18:44:11
Hajo_Zi
Hallo Sibylle,
benutze eine UserForm.

Ich glaube nicht ...
09.10.2011 18:45:52
Matthias
Hallo
... aber ich weiß es nicht, da nur bis XL2007 vorhanden.
Du könntest alternativ ein Userform benutzen.
Dort 2 Labels einfügen und entsprechend in den Eigenschaften formatieren.
Ich habe Dir das mal als Demonstration erstellt.
https://www.herber.de/bbs/user/76921.xls
Gruß Matthias
Anzeige
AW: Ich glaube nicht ...
09.10.2011 19:11:55
Sibylle
Hallo Matthias,
genau so etwas suche ich, habe aber bisher Userforms nicht verwendet.
Der berechnete Wert 199,99 steht im Währungsformat in H16.
Kannst Du mir aufzeigen, wie ich zu Deiner Ausgabe komme?
Mit Einfügen Userform wird im Projekt-Explorer ein Fenster geöffnet mit einem Userform-Entwurf.
Der Entwurf scheint 3 Textfelder zu enthalten
a. Für den Text
b. Für den Wert
c. C für OK
Aber wie kommen die in die Form?
Die Tabelle selbst enthält eine Schaltfläche, die die Userform startet.
Es wäre schön, wenn ich auf diese Weise die Ausgabe formatieren könnte.
Gruß
Sibylle
Anzeige
Erklärungsversuch
09.10.2011 19:48:54
Matthias
Hallo
Es sind keine Textfelder, es sind 2 Labels (wie schon geschrieben)
Desweiteren ein Commandbutton und ein Frame
Alle Controls in einem Userform haben auch verschiedene Eigenschaften.
Dort stellst Du z.B bei Caption den Text ein der auf dem Label erscheinen soll.
Nicht alle Controls haben immer gleiche Eigenschaften!
siehe Bild: (aus XL2007)
Die Caption-Eigenschaft des Userform hier "Microsoft Excel"
Userbild
Ich hoffe ich konnte ein bisschen weiterhelfen.
hier mit Format:
https://www.herber.de/bbs/user/76923.xls
Gruß Matthias
Anzeige
AW: Erklärungsversuch
09.10.2011 22:38:03
Sibylle
Hallo Matthias,
vielen Dank für Deine Antwort. Dazu folgende Fragen:
Du schreibst:
es sind 2 Labels (wie schon geschrieben)
Desweiteren ein Commandbutton und ein Frame

Auf der Userform erkenne ich 2 labels, die einen konstanten Text aufnehmen und den Wert aus H16
Die Formatierung klappt inzwischen wie gewünscht.
Dann ein Commandbutton mit dessen Hilfe die Userform wieder ausgeblendet wird, aber wo ist der FRAME? Den kann ich nicht erkennen.
In der Tabelle ist ein Commandbutton mit Caption UFORM. Wird die Verbindung zwischen diesem CommandButton und der Userform automatisch durch einen kLICK hergestellt? (in der Bearbeitungszeile =Einbetten("Forms.CommandButton1";")
Gruß
Sibylle
Anzeige
Das Frame ist breiter als das UForm
10.10.2011 07:29:13
Matthias
Hallo Sibylle
Du hast es nicht erkannt, das das Frame breiter als das Userform ist
Im Frame sind dann die beiden Labels platziert
Das Commandbutton direkt auf dem Userform.
Userbild


Das Einfügen des Commandbutton auf die Tabelle erolgt nach diesem Schema:
Dazu wechselst Du auf Entwicklertools und dann wie im Bild dargestellt.
Userbild
Bitte denke daran, das ich nur in XL2007 darstellen kann und somit evtl. Abweichungen möglich sind.
Ich hoffe ich konnte ein wenig helfen.
Gruß Matthias
Anzeige
AW: Das Frame ist breiter als das UForm
10.10.2011 09:10:18
Sibylle
Hallo Matthias,
besten Dank für Deine Hilfen.
X Versuche führten bisher noch nicht zum Ziel.
Im Tabellenblatt wird der Wert in H16 ermittelt.
In das Tabellenblatt wurde ein Befehlsschaltflächensteuerelement aufgezogen.
Es erhielt von Excel den Namen CommandButton1 und in der Bearbeitungsleiste wurde eingetragen
=EINBETTEN("Forms.CommandButton.1";"").
WICHTIG VIELLEICHT:
Im VBA-Projekt unter Tabelle1 Worksheet erscheint kein Code für diesen CommandButton1
und es sind nur Eigenschaften für das Tabellenblatt einzustellen.
Im VBA-Projekt wurde eine Userform eingefügt, ein Frame aufgezogen, in diesen Frame label1 und label2 aufgezogen, unter dem Frame eine Befehlsschaltfläche mit Namen CommandButton1.
Der Code für label1 lautet:

Private Sub Label1_Click()
'Bei Caption wurde der Text     Der Endbetrag lautet eingetragen
End Sub

Code für Label2

Private Sub UserForm_Activate()
Labels2.Caption = Format(Range("H166"), "#,##0.00 €")
End Sub

Code für den CommandButton1 in der Userform

Private Sub CommandButton1_Click()
UnloadMe
End Sub
Als Versuch wurde zu guter letzt ins Worksheet folgender Code eingetragen

Private Sub CommandButton1()
UserForm1.Show
End Sub
Nun sollte man meinen dass es läuft, aber offensichtlich habe ich etwas übersehen.
Was mag das nur sein? Ein Klick auf den Button im Tabellenblatt bewirkt nichts, während es in Deinem Beispiel perfekt funktioniert.
Ich bin sehr gespannt ob Du mit diesen Angaben meinen Fehler finden wirst.
Gruß
Sibylle
Anzeige
AW: Das Frame ist breiter als das UForm
10.10.2011 09:50:14
Matthias
Hallo
Zitat
WICHTIG VIELLEICHT:
Im VBA-Projekt unter Tabelle1 Worksheet erscheint kein Code für diesen CommandButton1
und es sind nur Eigenschaften für das Tabellenblatt einzustellen
.
Wenn Du das Commandbutton neu in die Tabelle eingefügt hast, mach doch mal einen Doppelklick darauf.
Nun müßte sich das Fenster der Tabelle öffnen.
Dort steht nun eigentlich schon automatisch

Private Sub CommandButton1_Click()
End Sub
Zwischen Sub und End Sub schreibst Du nun den Code
UserForm1.Show
also so:

Private Sub CommandButton1_Click()
Userform1.Show
End Sub
Wenn Du nun aufs Button der Tabelle klickst wird das Formular geladen.
Das Formular muß natürlich auch UserForm1 heißen
Desweiteren heißt es Label2 und nicht Labels2.Caption (ohne s)
Und es heißt Unload Me nicht UnloadMe (also mit Leerzeichen)
Oder korrekterrweise auch Unload UserForm1.
Kannst Du damit was anfangen?
Gruß Matthias
Anzeige
Die Userform wird nun angezeigt ...
10.10.2011 10:24:20
Sibylle
Hallo Matthias,
und die Formatierung der Ausgabedaten ist auch korrekt.
Vielen Dank für Deine zahlreichen, sehr guten Hilfen.
Zwei Punkte sind noch offen:
a. Wie lässt sich der Name im CommandButton1 der Tabelle ändern?
b. Wenn nach dem Start eines Makros zuerst einige Berechnungen und Aktionen durchgeführt werden sollen wie ruft man dann die Userform auf?
Wird dann einfach im Makro eine Zeile eingefügt Userform1.show oder sind da weitere Punkte zu berücksichtigen?
Gruß
Sibylle
AW: Die Userform wird nun angezeigt ...
10.10.2011 10:31:27
Rudi
Hallo,
a: Im Entwurfsmodus Rechtsklickdrauf, Eigenschaften
b: Wird dann einfach im Makro eine Zeile eingefügt Userform1.show Korrekt. Zu beachten ist, dass das Makro angehalten wird, während die UF angezeigt wird.
Gruß
Rudi
Anzeige
Danke
10.10.2011 11:02:15
Sibylle
Hallo Erich,
auch Dir besten Dank für Deinen Beitrag. Ich freue mich, dass die gestellte Aufgabe gelöst ist.
Einen schönen Tag.
Gruß
Sibylle
Eigenschaft .Caption
10.10.2011 10:47:34
Matthias
Hallo
Zitat
a. Wie lässt sich der Name im CommandButton1 der Tabelle ändern?
Wirklich den Namen ändern also das Objekt soll nicht Commandbutton1 heißen,
oder willst Du die Eigenschaft .Caption also den Text auf der Schaltfläche ändern?
Ich tippe mal Du willst den Text auf der Schaltfläche ändern.
Userbild
Wechsel also zuerst in den Entwurfsmodus
Dann Rechtsklick auf Commandbutton1 und bei Caption neuen Text hinterlegen.
Oder Rechtsklick auf Commandbutton1 -> Befehlsschaltfläche-Objekt -> Bearbeiten
Neuen Text zuweisen-Fertig
zu b
Ja, einfach nach der Ausführung Deiner Berechnung
also vorletzte Zeile im Code UserForm1.Show
Die letzte Zeile ist dann End Sub
Gruß Matthias
Anzeige
Tausend Dank
10.10.2011 10:59:38
Sibylle
Hallo Matthias,
ein ganz dickes Danke schön für Deine zahlreichen guten Scrrenshots und Beschreibungen, die wesentlich dazu beigetragen haben, dass eine Einführung in Userforms als erfolgreich bezeichnet werden darf
In Zukunft werde ich Deine besonders anschaulichen Beiträge verfolgen, kann man doch sehr viel daraus lernen.
Als Test werde ich nun eine formatierte Inputbox gestalten als Übung. Es müsste klappen ...
I
Ich wünsche Dir einen schönen Tag und eine gute Woche.
Viele Grüße
Sibylle
AW: Tausend Dank
10.10.2011 12:40:44
Sibylle
Hallo Matthias,
mein Versuch eine formatierbare Eingabebox zu erstellen, ist kläglich gescheitert.
Es fehlt an Infos oder Denkfehler sind die Ursache.
Mein Ansatz
label1 erhält den Inhalt Bitte die und ist damit formatierbar
label3 erhält den Inhalt Zahl eingeben und ist damit formatierbar
Label2 erhält den Inhalt einer Variablen Vartext aus dem Makro und ist damit formatierbar.
For i = 1 to 5
vartext = i & ". "
userform1.show
-
-
next i
Problem1: wie bekonnt man den Inhalt der Variablen vartext in label2?
Problem2: wie kann man dann überhaupt einen Wert eingeben, der danach in einer Variablen des Makros landen soll?
Über einen Tipp würde ich mich sehr freuen.
Gruß
Sibylle
AW: Tausend Dank
10.10.2011 12:59:00
Rudi
Hallo,
Problem1:
With Userform1
.Label2=varText
.Show
End With
Problem2: Um einen Wert einzugeben, benutze eine Textbox, kein Label.
Gruß
Rudi
AW: Tausend Dank
10.10.2011 13:33:00
Sibylle
Hallo Rudi,
das klappt, aber
a. wie kommt der eingegebene Wert in die Variable y?
b. wird in diesem Fall ein Commandbutton zum Bestätigen oder Löschen der Userform benötigt?
Gruß
Sibylle
Userform
10.10.2011 14:06:16
Rudi
Hallo,
b: ist sinnvoll. Du muss ja die UF schließen
a: indem du ihn ausliest.
UF (Userform1) mit 1 Label(Label2), 1 Textbox(Textbox1) und 1 Commandbutton (Commandbutton1)
In ein Modul:

Sub Main()
Dim y, varText
varText = "Test"
UserForm1.Label2 = varText
UserForm1.Show
y = UserForm1.TextBox1
MsgBox y
End Sub
In der UF:

Private Sub CommandButton1_Click()
Me.Hide
End Sub
Gruß
Rudi
AW: Userform
10.10.2011 20:30:40
Sibylle
Hallo Erich,
ich danke Dir für Deinen Vorschlag, den ich aufgegriffen habe.
Inzwischen sieht der Code so aus:

Sub test()
Dim y As String
Dim varText As String
Dim z As Integer
For i = 1 To 3
varText = "Bitte eine Zahl eingeben"
UserForm1.Label2 = varText
UserForm1.TextBox1 = ""
UserForm1.Show
y = UserForm1.TextBox1
z = CInt(y)
summe = summe + z
Next i
MsgBox summe
End Sub
Was mich daran stört ist die Tatsache, dass bei der Eingabe eines Wertes zuerst in die Textbox geklickt werden muss und nicht direkt eine Zahl eingegeben werden kann.
Lässt sich dies verbessern?
Gruß
Sibylle
AW: Userform
10.10.2011 22:20:01
Rudi
Hallo,
wieso Erich? Der ist doch gar nicht an dem Thread beteiligt.
....
Userform1.Textbox1.Setfocus
Userform1.Show
...
Alternativ die Aktivierreihenfolge entsprechend festlegen (Rechtsklick auf die UF)
Gruß
Rudi
Danke
11.10.2011 07:48:51
Sibylle
Hallo Rudi,
vielen Dank für die ergänzenden Zeilen.
Gruß
Sibylle
bitte aber auch [i] und [summe] deklarieren oT
10.10.2011 23:29:25
Matthias
Danke
11.10.2011 07:51:15
Sibylle
Hallo Matthias,
ja, Du hast recht. Ist inzwischen geschehen.
Danke für Deine Hilfen
Gruß
Sibylle
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge