Bonjour le Forum
Bonjour Diop & Sebb
Voici L'UNE des RUSES de LaurentTBT
// Centrer le titre d'un USF
Tout d'abord, je cherche la police utilisée dans cette barre de titre. Cette police est définie par windows, car elle est commune à toutes les fenêtres.
Par un clic droit sur le bureau windows, j'obtiens un menu, et je choisis "Propriétés". Ensuite, je regarde dans l'onglet "Apparence"
Là, on me présente justement l'apparence des fenêtres. Le détail est donné en dessous, dans la liste "Elément" sous windows 98, où via un bouton "avancé" sous windows XP. Pour les autres OS, ce doit être aussi accessible.
Enfin, dans cette liste, je choisis "Barre de titre active", ce qui me permets de découvrir quelle est la police utilisée, sa taille, et si c'est en gras ou en italique.
Bon, passons au code:
Dans mon UserForm1, je rajoute un label, dont je fixe dans la fenêtre propriété les points suivants:
Je lui donne la même police, avec taille et attributs (gras ou italique) identique à celle des fenêtres de Windows.
Je lui impose encore 3 propriétés:
WordWrap à False, Autosize à true et enfin, je le masque (visible=false).
Maintenant, l'astuce est la suivante: dans le code qui doit modifier la barre de titre du UserForm, voilà ce que j'écris, en ayant défini auparavant une variable Dim Espaces as Byte
Me.Label1 = Worksheets("Feuil1").Range("B3")
Do Until Me.Label1.Width >= Me.InsideWidth
Me.Label1 = " " & Me.Label1 & " "
Espaces = Espaces + 1
Loop
Me.Caption = Mid(Me.Label1, 2, Len(Me.Label1) - Espaces)
En fait, tu l'as compris, je calcule le nombre d'espaces qu'il faut rajouter devant (et donc autant derrière) pour que le texte soit centré. Et je ruse en utilisant un label qui s'ajuste
@ ++ Eric C