Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Centrer le titre d'un formulaire

454 views
Skip to first unread message

Gaston Pouliot

unread,
Sep 26, 2004, 1:49:04 AM9/26/04
to
J'ai créer un formulaire lié à des données d'un classeur
excel.Excel ne m'offre que 2 possibilités de position pour
le titre, soit à gauche ou à droite . Moi J'aimerais que
mon titre soit centré. Existe-il un module de classe déjà
programmé à cet effet. De plus j'aimerais que mon lettrage
soit plus gros. J'emploie déjà le module de classe
CFormChanger de Stephen Bullen pour le minimiser et le
restaurer mais celui-ci ne comprend pas le centrage du
titre. C'est un sujet un peu pointu. Aussi une réponse de
votre part me surprendrais mais qui ne demande rien n'a
rien.
Merci à l'avance.

Alain CROS

unread,
Sep 26, 2004, 7:38:28 PM9/26/04
to
Bonjour.

En ajoutant un nombre d'espaces approprié au début du
titre, ça devrait le faire.
Par contre, la possibilité offerte par excel de
positionner le titre a droite m'intéresse!
Si tu pouvais expliciter?

Alain CROS

>-----Message d'origine-----

>.
>

Michel Pierron

unread,
Sep 27, 2004, 2:48:27 AM9/27/04
to
Bonjour Gaston;
Une possibilité pour centrer le titre:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias _
"GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String _
, ByVal cbString As Long, lpSize As POINTAPI) As Long
Private Declare Function GetWindowRect Lib "user32" _
(ByVal hwnd As Long, lpRect As RECT) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Sub UserForm_Initialize()
Dim hwnd&, hdc&, TextSize As POINTAPI, Cx&, R As RECT
hwnd = FindWindow(vbNullString, Me.Caption)
hdc = GetDC(hwnd): GetWindowRect hwnd, R
GetTextExtentPoint32 hdc, Me.Caption, Len(Me.Caption), TextSize
Cx = (R.Right + R.Left + TextSize.X) / 2
Do While TextSize.X < Cx
Me.Caption = " " & Me.Caption
GetTextExtentPoint32 hdc, Me.Caption, Len(Me.Caption), TextSize
Loop
End Sub

Peut être que si tu nous dis comment tu fais pour aligner le titre à droite, on
pourra en déduire comment le centrer.
Quant à changer la police du titre, c'est une autre paire de manches; elle se
définit dans les paramètres de Windows / Affichage / Apparence.
MP

"Gaston Pouliot" <gpoul...@hotmail.com> a écrit dans le message de
news:144101c4a38c$87e30e90$a501...@phx.gbl...

Frédéric Sigonneau

unread,
Sep 28, 2004, 6:57:28 AM9/28/04
to
Bonjour,

Pour aligner le titre d'un userform à droite, il faut mettre sa propriété
RightToLeft à True :

Private Sub UserForm_Initialize()
Me.RightToLeft = True
End Sub

Mais cette piste ne débouche pas, AMA, sur une solution à la question de
"Gaston". Je n'ai pas trouvé, de mon côté, de fonction 'toute faite' pour lui
répondre.

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Alain CROS a écrit :

Alain CROS

unread,
Sep 28, 2004, 7:36:04 AM9/28/04
to
Bonjour.

Cette propriété existe à partir de XL2000 mais ne fonctionne pas chez moi.
Ce que je comprends de l'aide, c'est qu'il faut que le système soit configuré pour une écriture de droite à gauche.
Peut être que je n'ai rien compris ?
En tous cas chez moi, ton code ne génère pas d'erreur mais il ne se passe rien?

Alain CROS

"Frédéric Sigonneau" <frederic....@phri.fr> a écrit dans le message de news: uDe2EoUp...@TK2MSFTNGP15.phx.gbl...

Frédéric Sigonneau

unread,
Sep 28, 2004, 8:14:18 AM9/28/04
to
Re Alain,

Je travaille avec Excel 2002 (SP3) et cette ligne de code permet bien, avec
cette version, d'aligner le titre d'un userform à droite, sans autre
manipulation ou réglage de ma part.
Ce fonctionnement qui semble réservé aux versions les plus récentes d'Excel
confirme, de mon point de vue, que ce n'est pas une approche 'féconde' pour
résoudre le problème posé.

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Alain CROS a écrit :

0 new messages