Estelle_BNP
Messages postés25Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention10 mai 2008
-
5 janv. 2007 à 11:04
Estelle_BNP
Messages postés25Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention10 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 ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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...
Estelle_BNP
Messages postés25Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention10 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 ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 ...
Estelle_BNP
Messages postés25Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention10 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 ?
Estelle_BNP
Messages postés25Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention10 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 ?