Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MsgBox sur plusieurs lignes

31 réponses
Avatar
José
Comment faire un MsgBox sur plusieurs lignes pour que mon texte soit
lisible.
Merci

--
Bonne réception

J. MASDEU
Tél : 04 73 86 35 25
jmasdeu@dietal.com

10 réponses

1 2 3 4
Avatar
Michel Gaboly
Bonsoir,

Un UserForm paraît effectivement plus approprié, mais
rien n'impose de le créer à la volée.

On peut le créer d'avance avec un (ou plusieurs) Label
superposé(s), et la propriété "TextAlign" égale à
"fmTextAlignCenter".

Si on utilise un seul Label, sa propriété "WordWrap"
doit être à True.

Si on en utilise plusieurs, ils doivent avoir la même
largeur, et être alignés sur la gauche.

Il faut également prévoir au moins 2 CommandButton.

Selon le texte à afficher, on utilise un Label, 2 ou plus.
Idem pour les boutons.

Le UserForm doit être redimensionné en fonction des
éléments utilisés. Pour les autres, il faut, le cas échéant,
mettre leur propriété Visible à False.



;-)))
bonsoir José,
là il va falloir y mettre tu tiens, ou alors passer par un
userform créé à la volée....
il n'y a pas d'alignement par option dans un MsgBox !!!

un exemple de code possible :
(même dans ce cas le résultat n'est correct qu'avec une
police par défaut "courier")

Sub AligneMsgBox()
NCL = 80 ' nombre de caractères par ligne
ligne1 = "Bonjour a gauche"
ligne2 = "Voici une ligne de message centrée"
ligne3 = "Signature à droite"
titre = "Boite message avec alignements"
'-----ce qui suit est une seule instruction !!!
MsgBox ligne1 & Chr(10) _
& String((NCL - Len(ligne2)) / 2, " ") & ligne2 &
String((NCL - Len(ligne2)) / 2, " ") & Chr(10) _
& String(NCL - Len(ligne3), " ") & ligne3, _
vbOKOnly, titre
'-----fin del'instruction
End Sub

-----Message d'origine-----
Merci pour vos réponses, Maintenant que mon texte est sur
plusieurs lignes,

comment faire pour le centrer dans ma MsgBox


"Pascal" a écrit dans le
message news:


Sinon voici une réponse à ta question

MsgBox "Ton texte." & Chr(10) _
& Chr
(10) & _


"Ton texte" & Chr(10) _
& Chr(10) & _
"Ton texte" & Chr(10) _
& Chr(10) & _


Pascal

Comment faire un MsgBox sur plusieurs lignes pour que
mon texte soit



lisible.
Merci

--
Bonne réception









.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com





Avatar
Jacquouille
Et le fin du fin, pour la fin ?
Comment centrer un titre dans un msb box ???
Si ce n'est à coups de barre d'espacements avant le titre ?

--
Jacquouille conseille : http://www.excelabo.net


"Michel Gaboly" a écrit dans le message news:

Bonsoir,

Un UserForm paraît effectivement plus approprié, mais
rien n'impose de le créer à la volée.

On peut le créer d'avance avec un (ou plusieurs) Label
superposé(s), et la propriété "TextAlign" égale à
"fmTextAlignCenter".

Si on utilise un seul Label, sa propriété "WordWrap"
doit être à True.

Si on en utilise plusieurs, ils doivent avoir la même
largeur, et être alignés sur la gauche.

Il faut également prévoir au moins 2 CommandButton.

Selon le texte à afficher, on utilise un Label, 2 ou plus.
Idem pour les boutons.

Le UserForm doit être redimensionné en fonction des
éléments utilisés. Pour les autres, il faut, le cas échéant,
mettre leur propriété Visible à False.



;-)))
bonsoir José,
là il va falloir y mettre tu tiens, ou alors passer par un
userform créé à la volée....
il n'y a pas d'alignement par option dans un MsgBox !!!

un exemple de code possible :
(même dans ce cas le résultat n'est correct qu'avec une
police par défaut "courier")

Sub AligneMsgBox()
NCL = 80 ' nombre de caractères par ligne
ligne1 = "Bonjour a gauche"
ligne2 = "Voici une ligne de message centrée"
ligne3 = "Signature à droite"
titre = "Boite message avec alignements"
'-----ce qui suit est une seule instruction !!!
MsgBox ligne1 & Chr(10) _
& String((NCL - Len(ligne2)) / 2, " ") & ligne2 &
String((NCL - Len(ligne2)) / 2, " ") & Chr(10) _
& String(NCL - Len(ligne3), " ") & ligne3, _
vbOKOnly, titre
'-----fin del'instruction
End Sub

-----Message d'origine-----
Merci pour vos réponses, Maintenant que mon texte est sur
plusieurs lignes,

comment faire pour le centrer dans ma MsgBox


"Pascal" a écrit dans le
message news:


Sinon voici une réponse à ta question

MsgBox "Ton texte." & Chr(10) _
& Chr
(10) & _


"Ton texte" & Chr(10) _
& Chr(10) & _
"Ton texte" & Chr(10) _
& Chr(10) & _


Pascal

Comment faire un MsgBox sur plusieurs lignes pour que
mon texte soit



lisible.
Merci

--
Bonne réception









.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com









Avatar
isabelle
bonjour José,

je crois bien qu'il va falloir t'initié au userform !

Sub test()
t1 = "bonjour"
t2 = "ceci est le test ?"
t3 = "bouuu! c'est pas terrible"
l1 = Len(t1)
l2 = Len(t2)
l3 = Len(t3)
m = Application.Max(l1, l2, l3)
x1 = Application.Ceiling((m - l1) / 2, 1) + 20
x2 = Application.Ceiling((m - l2) / 2, 1) + 20
x3 = Application.Ceiling((m - l3) / 2, 1) + 20
MsgBox Space(x1) & t1 & Space(x1) & Chr(10) & _
Space(x2) & t2 & Space(x2) & Chr(10) & _
Space(x3) & t3 & Space(x3) & Chr(10)
End Sub

isabelle


Et le fin du fin, pour la fin ?
Comment centrer un titre dans un msb box ???
Si ce n'est à coups de barre d'espacements avant le titre ?

--
Jacquouille conseille : http://www.excelabo.net


"Michel Gaboly" a écrit dans le message news:

Bonsoir,

Un UserForm paraît effectivement plus approprié, mais
rien n'impose de le créer à la volée.

On peut le créer d'avance avec un (ou plusieurs) Label
superposé(s), et la propriété "TextAlign" égale à
"fmTextAlignCenter".

Si on utilise un seul Label, sa propriété "WordWrap"
doit être à True.

Si on en utilise plusieurs, ils doivent avoir la même
largeur, et être alignés sur la gauche.

Il faut également prévoir au moins 2 CommandButton.

Selon le texte à afficher, on utilise un Label, 2 ou plus.
Idem pour les boutons.

Le UserForm doit être redimensionné en fonction des
éléments utilisés. Pour les autres, il faut, le cas échéant,
mettre leur propriété Visible à False.



;-)))
bonsoir José,
là il va falloir y mettre tu tiens, ou alors passer par un
userform créé à la volée....
il n'y a pas d'alignement par option dans un MsgBox !!!

un exemple de code possible :
(même dans ce cas le résultat n'est correct qu'avec une
police par défaut "courier")

Sub AligneMsgBox()
NCL = 80 ' nombre de caractères par ligne
ligne1 = "Bonjour a gauche"
ligne2 = "Voici une ligne de message centrée"
ligne3 = "Signature à droite"
titre = "Boite message avec alignements"
'-----ce qui suit est une seule instruction !!!
MsgBox ligne1 & Chr(10) _
& String((NCL - Len(ligne2)) / 2, " ") & ligne2 &
String((NCL - Len(ligne2)) / 2, " ") & Chr(10) _
& String(NCL - Len(ligne3), " ") & ligne3, _
vbOKOnly, titre
'-----fin del'instruction
End Sub

-----Message d'origine-----
Merci pour vos réponses, Maintenant que mon texte est sur
plusieurs lignes,

comment faire pour le centrer dans ma MsgBox


"Pascal" a écrit dans le
message news:


Sinon voici une réponse à ta question

MsgBox "Ton texte." & Chr(10) _
& Chr
(10) & _


"Ton texte" & Chr(10) _
& Chr(10) & _
"Ton texte" & Chr(10) _
& Chr(10) & _


Pascal

Comment faire un MsgBox sur plusieurs lignes pour que
mon texte soit



lisible.
Merci

--
Bonne réception









.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com











Avatar
Jacquouille
Bonsoir Isabelle
Ta réponse est belle
Mais tu centres le message et non le titre !!!!
Tu auras donc un 10/10 pour ton travail et un 0/10 pour réponse inadaptée,
et un 0/10 pour le José.
Quoi moi devoir penser ?
Si tu engéôles les gens comme cela, il y aura vite du broll en IV65.536 -))

Au fait, Application.Ceiling : c'est quoi en Gaulois ?

(s) Jacquouille et non Josouille. -))
--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

bonjour José,

je crois bien qu'il va falloir t'initié au userform !

Sub test()
t1 = "bonjour"
t2 = "ceci est le test ?"
t3 = "bouuu! c'est pas terrible"
l1 = Len(t1)
l2 = Len(t2)
l3 = Len(t3)
m = Application.Max(l1, l2, l3)
x1 = Application.Ceiling((m - l1) / 2, 1) + 20
x2 = Application.Ceiling((m - l2) / 2, 1) + 20
x3 = Application.Ceiling((m - l3) / 2, 1) + 20
MsgBox Space(x1) & t1 & Space(x1) & Chr(10) & _
Space(x2) & t2 & Space(x2) & Chr(10) & _
Space(x3) & t3 & Space(x3) & Chr(10)
End Sub

isabelle


Et le fin du fin, pour la fin ?
Comment centrer un titre dans un msb box ???
Si ce n'est à coups de barre d'espacements avant le titre ?

--
Jacquouille conseille : http://www.excelabo.net






Avatar
isabelle
hé hé Jacquouille,

Merci pour vos réponses, Maintenant que mon texte est sur plusieurs lignes,
comment faire pour le centrer dans ma MsgBox


je ne voie pas ou il est question de seulement centrer le titre ;-)
ceiling, c'est le plafond (semblable à arrondir vers le haut, il y a
aussi la fonction floor, planché)
mais dit moi ce qu'est broll ?

isabelle



Bonsoir Isabelle
Ta réponse est belle
Mais tu centres le message et non le titre !!!!
Tu auras donc un 10/10 pour ton travail et un 0/10 pour réponse inadaptée,
et un 0/10 pour le José.
Quoi moi devoir penser ?
Si tu engéôles les gens comme cela, il y aura vite du broll en IV65.536 -))

Au fait, Application.Ceiling : c'est quoi en Gaulois ?

(s) Jacquouille et non Josouille. -))
--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

bonjour José,

je crois bien qu'il va falloir t'initié au userform !

Sub test()
t1 = "bonjour"
t2 = "ceci est le test ?"
t3 = "bouuu! c'est pas terrible"
l1 = Len(t1)
l2 = Len(t2)
l3 = Len(t3)
m = Application.Max(l1, l2, l3)
x1 = Application.Ceiling((m - l1) / 2, 1) + 20
x2 = Application.Ceiling((m - l2) / 2, 1) + 20
x3 = Application.Ceiling((m - l3) / 2, 1) + 20
MsgBox Space(x1) & t1 & Space(x1) & Chr(10) & _
Space(x2) & t2 & Space(x2) & Chr(10) & _
Space(x3) & t3 & Space(x3) & Chr(10)
End Sub

isabelle


Et le fin du fin, pour la fin ?
Comment centrer un titre dans un msb box ???
Si ce n'est à coups de barre d'espacements avant le titre ?

--
Jacquouille conseille : http://www.excelabo.net








Avatar
Jacquouille
Bonsoir Isabeau
.
broll = argot bruxellois qui veut dire "chose", "machin", mais avec une
connotation de "bordelistique", du style bazar, capharnaüm, voire bordel (là
où un chat n'y retrouverait pas ses jeunes)
Dans mon msg initial, je parlais bien de centrer le titre
Si je prends ta macro (qui tourne super), tu centres le message dans la
boîte, mais le titre (Mircro$... par définition) reste aligné à gauche.
Au plaisir de te lire, mais en paix dans ma case et non en cellule -))


--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

hé hé Jacquouille,

Merci pour vos réponses, Maintenant que mon texte est sur plusieurs
lignes,


comment faire pour le centrer dans ma MsgBox


je ne voie pas ou il est question de seulement centrer le titre ;-)
ceiling, c'est le plafond (semblable à arrondir vers le haut, il y a
aussi la fonction floor, planché)
mais dit moi ce qu'est broll ?

isabelle



Bonsoir Isabelle
Ta réponse est belle
Mais tu centres le message et non le titre !!!!
Tu auras donc un 10/10 pour ton travail et un 0/10 pour réponse
inadaptée,


et un 0/10 pour le José.
Quoi moi devoir penser ?
Si tu engéôles les gens comme cela, il y aura vite du broll en
IV65.536 -))



Au fait, Application.Ceiling : c'est quoi en Gaulois ?

(s) Jacquouille et non Josouille. -))
--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

bonjour José,

je crois bien qu'il va falloir t'initié au userform !

Sub test()
t1 = "bonjour"
t2 = "ceci est le test ?"
t3 = "bouuu! c'est pas terrible"
l1 = Len(t1)
l2 = Len(t2)
l3 = Len(t3)
m = Application.Max(l1, l2, l3)
x1 = Application.Ceiling((m - l1) / 2, 1) + 20
x2 = Application.Ceiling((m - l2) / 2, 1) + 20
x3 = Application.Ceiling((m - l3) / 2, 1) + 20
MsgBox Space(x1) & t1 & Space(x1) & Chr(10) & _
Space(x2) & t2 & Space(x2) & Chr(10) & _
Space(x3) & t3 & Space(x3) & Chr(10)
End Sub

isabelle


Et le fin du fin, pour la fin ?
Comment centrer un titre dans un msb box ???
Si ce n'est à coups de barre d'espacements avant le titre ?

--
Jacquouille conseille : http://www.excelabo.net










Avatar
isabelle
:-))))))))))))
oup's je vient tout juste de voir ta question,
c'est de ce genre de msg dont tu parle

Sub Macro1()
Msg = "Qu'est que ça donne ? là je ralonge un peu pour voir l'effet"
l1 = Len(Msg)
x1 = Application.Ceiling(l1 / 2, 1) + 20
Style = vbOKOnly
Title = "Démonstration de MsgBox "
Response = MsgBox(Msg, Style, Space(x1) & Title & Space(x1))
End Sub

isabelle


Bonsoir Isabeau
.
broll = argot bruxellois qui veut dire "chose", "machin", mais avec une
connotation de "bordelistique", du style bazar, capharnaüm, voire bordel (là
où un chat n'y retrouverait pas ses jeunes)
Dans mon msg initial, je parlais bien de centrer le titre
Si je prends ta macro (qui tourne super), tu centres le message dans la
boîte, mais le titre (Mircro$... par définition) reste aligné à gauche.
Au plaisir de te lire, mais en paix dans ma case et non en cellule -))

--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

hé hé Jacquouille,

Merci pour vos réponses, Maintenant que mon texte est sur plusieurs
lignes,


comment faire pour le centrer dans ma MsgBox


je ne voie pas ou il est question de seulement centrer le titre ;-)
ceiling, c'est le plafond (semblable à arrondir vers le haut, il y a
aussi la fonction floor, planché)
mais dit moi ce qu'est broll ?

isabelle



Bonsoir Isabelle
Ta réponse est belle
Mais tu centres le message et non le titre !!!!
Tu auras donc un 10/10 pour ton travail et un 0/10 pour réponse
inadaptée,


et un 0/10 pour le José.
Quoi moi devoir penser ?
Si tu engéôles les gens comme cela, il y aura vite du broll en
IV65.536 -))



Au fait, Application.Ceiling : c'est quoi en Gaulois ?

(s) Jacquouille et non Josouille. -))
--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

bonjour José,

je crois bien qu'il va falloir t'initié au userform !

Sub test()
t1 = "bonjour"
t2 = "ceci est le test ?"
t3 = "bouuu! c'est pas terrible"
l1 = Len(t1)
l2 = Len(t2)
l3 = Len(t3)
m = Application.Max(l1, l2, l3)
x1 = Application.Ceiling((m - l1) / 2, 1) + 20
x2 = Application.Ceiling((m - l2) / 2, 1) + 20
x3 = Application.Ceiling((m - l3) / 2, 1) + 20
MsgBox Space(x1) & t1 & Space(x1) & Chr(10) & _
Space(x2) & t2 & Space(x2) & Chr(10) & _
Space(x3) & t3 & Space(x3) & Chr(10)
End Sub

isabelle


Et le fin du fin, pour la fin ?
Comment centrer un titre dans un msb box ???
Si ce n'est à coups de barre d'espacements avant le titre ?

--
Jacquouille conseille : http://www.excelabo.net












Avatar
Jacquouille
Re
Je crois que l'on ne peut pas y arriver car, à mon avis, il faudrait définir
d'abord la longueur du msg (ce que tu fais pour le centrer, puis connaître
la longueur du titre (c'est faisable) et ajouter au titre la moitié de la
différence des deux longueurs.
Avec la macro que tu viens de me donner, on voit nettement que le bouton OK
(qui est toujours centré) ne se trouve pas exactement au centre du titre.
D'où vient cette : Space(x1) ??
Espace que tu concatènes avant et après le titre, c'est cela ?
Encore merci pour ta patience, mais je dois déchiffrer à chaque coup le
Grand Breton. -)
Jacques

--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

:-))))))))))))
oup's je vient tout juste de voir ta question,
c'est de ce genre de msg dont tu parle

Sub Macro1()
Msg = "Qu'est que ça donne ? là je ralonge un peu pour voir l'effet"
l1 = Len(Msg)
x1 = Application.Ceiling(l1 / 2, 1) + 20
Style = vbOKOnly
Title = "Démonstration de MsgBox "
Response = MsgBox(Msg, Style, Space(x1) & Title & Space(x1))
End Sub

isabelle


Bonsoir Isabeau
.
broll = argot bruxellois qui veut dire "chose", "machin", mais avec une
connotation de "bordelistique", du style bazar, capharnaüm, voire bordel
(là


où un chat n'y retrouverait pas ses jeunes)
Dans mon msg initial, je parlais bien de centrer le titre
Si je prends ta macro (qui tourne super), tu centres le message dans la
boîte, mais le titre (Mircro$... par définition) reste aligné à gauche.
Au plaisir de te lire, mais en paix dans ma case et non en cellule -))

--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message news:

hé hé Jacquouille,

Merci pour vos réponses, Maintenant que mon texte est sur plusieurs
lignes,


comment faire pour le centrer dans ma MsgBox


je ne voie pas ou il est question de seulement centrer le titre ;-)
ceiling, c'est le plafond (semblable à arrondir vers le haut, il y a
aussi la fonction floor, planché)
mais dit moi ce qu'est broll ?

isabelle



Bonsoir Isabelle
Ta réponse est belle
Mais tu centres le message et non le titre !!!!
Tu auras donc un 10/10 pour ton travail et un 0/10 pour réponse
inadaptée,


et un 0/10 pour le José.
Quoi moi devoir penser ?
Si tu engéôles les gens comme cela, il y aura vite du broll en
IV65.536 -))



Au fait, Application.Ceiling : c'est quoi en Gaulois ?

(s) Jacquouille et non Josouille. -))
--
Jacquouille conseille : http://www.excelabo.net


"isabelle" a écrit dans le message
news:





bonjour José,

je crois bien qu'il va falloir t'initié au userform !

Sub test()
t1 = "bonjour"
t2 = "ceci est le test ?"
t3 = "bouuu! c'est pas terrible"
l1 = Len(t1)
l2 = Len(t2)
l3 = Len(t3)
m = Application.Max(l1, l2, l3)
x1 = Application.Ceiling((m - l1) / 2, 1) + 20
x2 = Application.Ceiling((m - l2) / 2, 1) + 20
x3 = Application.Ceiling((m - l3) / 2, 1) + 20
MsgBox Space(x1) & t1 & Space(x1) & Chr(10) & _
Space(x2) & t2 & Space(x2) & Chr(10) & _
Space(x3) & t3 & Space(x3) & Chr(10)
End Sub

isabelle


Et le fin du fin, pour la fin ?
Comment centrer un titre dans un msb box ???
Si ce n'est à coups de barre d'espacements avant le titre ?

--
Jacquouille conseille : http://www.excelabo.net














Avatar
isabelle
D'où vient cette : Space(x1) ??
Espace que tu concatènes avant et après le titre, c'est cela ?


oui c'est bien ça, on pourrait mettre simplement,

Response = MsgBox(Msg, Style, Space(50) & Title & Space(40))

isabelle

Avatar
sabatier
qu'entends-je? on n'a jamais entendu parler de CAVOK dans la police belge?
d'accord, elle n'est pas forcément aéroportée mais quand même...
Ceiling And Visibility OK, ce qui en gaulois, jacquouille, signifie Plafond et
Visibilité OK, c'est à dire que, si tu pilotes un petit avion non équipé de
l'IFR (pilotage aux instruments par opposition à VFR, pilotage a vue), alors tu
peux décoller....
mais, et c'est bien connu, toi tu décolles avec deux "n"...
jps

Jacquouille wrote:

Au fait, Application.Ceiling : c'est quoi en Gaulois ?



1 2 3 4