patricktoulon
XLDnaute Barbatruc
bonjour a tous
cette question vient de ressortir dans le forum j'ai pensé que ca devait etre mis dans les astuces
en effet le text dans un label ne peut etre centré qu'horizontalement avec la properties(textalign)
il existe une astuce simple qui consiste a mettre une image de 1 pixel (meme 1 point ca fonctionne aussi) transparente dans le .picture et de mettre le picture aligné au centre
reste que l'on doit avoir cette image dispo dans le disque dur
je vous propose une astuce dans l'astuce
le jeu consiste a fabriquer cette image dynamiquement
on a avec les api la possibilité de le faire (voir lexemple que j'ai donné de la discussion ci dessous )
mais on a une autre possibilité
a savoir utiliser le picture d'un commandbarcontrolbutton
et là les choses deviennent tout de suite plus simples
ca consiste a ;
le code utilisé dans la demo
model avec les api en macro 4 pour ceux que ça intéresse
cette question vient de ressortir dans le forum j'ai pensé que ca devait etre mis dans les astuces
en effet le text dans un label ne peut etre centré qu'horizontalement avec la properties(textalign)
il existe une astuce simple qui consiste a mettre une image de 1 pixel (meme 1 point ca fonctionne aussi) transparente dans le .picture et de mettre le picture aligné au centre
reste que l'on doit avoir cette image dispo dans le disque dur
je vous propose une astuce dans l'astuce
le jeu consiste a fabriquer cette image dynamiquement
on a avec les api la possibilité de le faire (voir lexemple que j'ai donné de la discussion ci dessous )
mais on a une autre possibilité
a savoir utiliser le picture d'un commandbarcontrolbutton
et là les choses deviennent tout de suite plus simples
ca consiste a ;
- créer une shape transparente et sans contour
- la copier(copypicture)
- la supprimer
- creer une commandbar popup temporaire(sans l'afficher)
- ajouter un controlbutton dans cette barre et faire un paste face pour mettre l'image dans le bouton
- et bien il ne reste plus qu'a mettre l'image du bouton dans le label .picture=le bouton.picture
- aligner au centre le picture
le code utilisé dans la demo
VB:
'******************************************
'sujet: centrer verticalement le texte de la caption d'un label dans un userform
'date:10/11/2021
'auteur: patricktoulon sur exceldownloads
'version:2.0
' a l'aide d'un bouton dans une commandbarre temporaire et dynamique
'******************************************
Private Sub CommandButton1_Click()
centrer_le_text Label1
End Sub
Sub centrer_le_text(obj As msforms.Label)
Dim barre As CommandBar, bout As CommandBarControl, shap As Shape
Set barre = Application.CommandBars.Add("tempo", msoBarPopup, , True)
Set bout = barre.Controls.Add(Type:=msoControlButton)
Set shap = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 1, 1)
With shap
.Line.Visible = msoFalse
.Fill.Visible = msoFalse
.CopyPicture 'copypicture=copie en WMF(garde la transparence)
.Delete
End With
bout.PasteFace
With obj
.Picture = bout.Picture
.PicturePosition = fmPicturePositionCenter
End With
barre.Delete
End Sub
model avec les api en macro 4 pour ceux que ça intéresse
XL 2010 - Centrer VERTICALEMENT un texte dans un TextBox
Bonsoir, Centrer horizontalement un texte dans un TextBox, cela ne pose pas de problème. En revanche, centrer ce même texte verticalement, c'est une autre paire de manches... Dans mon cas, le texte est bien centré horizontalement mais tout en haut du TextBox, ce qui n'est pas très esthétique...
www.excel-downloads.com