Passer à la ligne dans un CommandButton

Résolu
Estelle_BNP Messages postés 25 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 10 mai 2008 - 5 janv. 2007 à 11:04
Estelle_BNP Messages postés 25 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 10 mai 2008 - 8 janv. 2007 à 12:29
Bonjour,

J'ai mis dans une cellule Excel un texte de 3 lignes. J'aimerai que ce texte soit repris dans la légende du bouton que j'ai créé dans un UserForm. Pour cela, j'ai utilisé la fonction CommandButton1.Caption = range("APV"). J'aimerai maintenant que le texte passe à la ligne dans le bouton pour qu'il apparaisse complètement. Est-ce possible ? Si oui, quelle démarche dois-je suivre ?

Merci pour vos conseils,

Estelle

10 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 janv. 2007 à 11:22
Salut,
Essaies de mette la propriété WordWrap de Ton commandButton  a TRUE
@+: Ju£i?n
Pensez: Réponse acceptée
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 janv. 2007 à 19:39
AH.... Mais tu es peut-être sous VBA et n'a dans ce cas pas de picturebox !

Si tel est le cas, tu peux faire la même chose, mais en remplaçant la picturebox Picture1 par un userform2
remplacer alors partout le mot Picture1 par le mot UserForm2
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 janv. 2007 à 11:09
Je n'ai pas VBA !

Il va te falloir attendre un peu.

J'en suis pour l'instant à "perfectionner mon tir" pour déposer une source qui traitera, sous VB, les boutons de commande, les Optionbuttons et les CheckBoxes

Tu me dis que textwidth n'est pas reconnu sous VBA (dommage).

Quand j'en aurai fini avec VB, je te proposerai un essai (avec des fonctions de l'API de Windows) pour VBA.

Si tu veux commencer : Textwidth et Textheight retournent la taille graphique d'une chaîne de caractères, pour une police de caractéristiques précisées.

TextWidth et TextHeight peuvent être remplacés par l'utilisation de la fonction GetTextExtentPoint32  de la librairie gdi32.dll (VB utilise d'ailleurs tout simplement cette fonction pour donner ses résultats de TexWidth et TextHeight).

Ce ne sera donc pas là la vraie difficulté, mais plutôt dans l'utilisation d'une userform complémentaire pour remplacer la picturebox utilisée sous VB...
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
5 janv. 2007 à 11:06
Salut soit faire un split sur le texte et mettre des vbcrlf ou alors ajuster la taille du bouton pour avoir le text sur trois ligne!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Estelle_BNP Messages postés 25 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 10 mai 2008
5 janv. 2007 à 11:26
Parfait, c'est exactement ce que je voulais. Merci. Y-a-t-il également possibilité d'ajuster le texte au format Justifié plutôt que centré au aligné à gauche ou à droite ?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 janv. 2007 à 18:08
Oui, mais il te faudra faire un peu de gymnastique et le me demande si c'est "justifié" (un petit jeu de mot à 4 sous).


Si tu y tiens vraiment, je te dirai comment, mais ça aloudira un peu ton code pour pas grand-chose ...Tu dis ...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 janv. 2007 à 19:17
Tiens...
Le vieux a voulu faire joujou, alors ....

Sur une Form :

- Un bouton de commande Command1, avec sa propriété Style = Graphical et des dimensions suffisantes pour y écrire au moins le texte d'essai (ici "Nous voilà)

- une picturebox Picture1

Code (un peu bâclé, mais bon...) :

Private Sub Form_Activate()
  Command1.Caption = "Nous voilà"
  With Font
    .Name = Command1.FontName
    .Size = Command1.FontSize
  End With
  With Picture1
    .Visible = False
    .FontName = Command1.FontName
    .FontSize = Command1.FontSize
    .AutoRedraw = True
    .FontBold = Command1.FontBold
    .Width = Command1.Width
    .Height = Command1.Height
  End With
  esp = (Picture1.Width - TextWidth(Command1.Caption)) / (Len(Command1.Caption) + 2)
 Picture1.CurrentX = esp
  For i = 1 To Len(Command1.Caption)
    Picture1.CurrentY = (Picture1.Height - TextHeight(Command1.Caption)) / 2
    Picture1.Print Mid(Command1.Caption, i, 1)
    DoEvents
    Picture1.CurrentX = esp + (esp * i) + TextWidth(Left(Command1.Caption, i))
  Next
  Command1.Picture = Picture1.Image
  Command1.Caption = ""
End Sub

Lance et vois !

Puis modifie à ta guise les dimensions de ton Command1 et vois ...


 


 


Voilà ! C'est justifié, maintenant
0
Estelle_BNP Messages postés 25 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 10 mai 2008
8 janv. 2007 à 10:04
Merci jmfmarques pour ces informations. Je développe en effet mon programme sous VBA. J'ai essayé de faire tourner ta macro, mais il ne reconnaît pas tout le code notamment TextWidth (Sub ou function non définie). Peux-tu me donner le code en VBA ?
0
Estelle_BNP Messages postés 25 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 10 mai 2008
8 janv. 2007 à 10:04
Merci jmfmarques pour ces informations. Je développe en effet mon programme sous VBA. J'ai essayé de faire tourner ta macro, mais il ne reconnaît pas tout le code notamment TextWidth (Sub ou function non définie). Peux-tu me donner le code en VBA ?
0
Estelle_BNP Messages postés 25 Date d'inscription jeudi 14 décembre 2006 Statut Membre Dernière intervention 10 mai 2008
8 janv. 2007 à 12:29
Merci, je vais attendre.
0
Rejoignez-nous