Passer à la ligne dans un CommandButton [Résolu]

Estelle_BNP 25 Messages postés jeudi 14 décembre 2006Date d'inscription 10 mai 2008 Dernière intervention - 5 janv. 2007 à 11:04 - Dernière réponse : Estelle_BNP 25 Messages postés jeudi 14 décembre 2006Date d'inscription 10 mai 2008 Dernière intervention
- 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
Afficher la suite 

10 réponses

Répondre au sujet
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 5 janv. 2007 à 11:22
+3
Utile
Salut,
Essaies de mette la propriété WordWrap de Ton commandButton  a TRUE
@+: Ju£i?n
Pensez: Réponse acceptée
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jrivet
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 janv. 2007 à 19:39
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 8 janv. 2007 à 11:09
+3
Utile
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...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 5 janv. 2007 à 11:06
0
Utile
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:
Commenter la réponse de drikce06
Estelle_BNP 25 Messages postés jeudi 14 décembre 2006Date d'inscription 10 mai 2008 Dernière intervention - 5 janv. 2007 à 11:26
0
Utile
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 ?
Commenter la réponse de Estelle_BNP
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 janv. 2007 à 18:08
0
Utile
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 ...
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 janv. 2007 à 19:17
0
Utile
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
Commenter la réponse de jmfmarques
Estelle_BNP 25 Messages postés jeudi 14 décembre 2006Date d'inscription 10 mai 2008 Dernière intervention - 8 janv. 2007 à 10:04
0
Utile
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 ?
Commenter la réponse de Estelle_BNP
Estelle_BNP 25 Messages postés jeudi 14 décembre 2006Date d'inscription 10 mai 2008 Dernière intervention - 8 janv. 2007 à 10:04
0
Utile
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 ?
Commenter la réponse de Estelle_BNP
Estelle_BNP 25 Messages postés jeudi 14 décembre 2006Date d'inscription 10 mai 2008 Dernière intervention - 8 janv. 2007 à 12:29
0
Utile
Merci, je vais attendre.
Commenter la réponse de Estelle_BNP

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.