POSITION USERFORM A L'ECRAN

Signaler
Messages postés
13
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
1 décembre 2004
-
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
-
Bonjour à toutes et à tous
Y a t'il un moyen de positionner automatiquement un userform en haut et à droite de l'écran sans avoir à le paramétrer avec l'option manual ?

Merci pour votre aide
Daniel

12 réponses

Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
ha oui , petit détail au cas ou, ce bout de code est à placé dans le form_load

@+

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
Voici un code ki fonction avec le mode
StartUpPosition = Windows Default

Me.Top = 0
Me.Left = Screen.Width - Me.Width


Si cela ne te convients pas n'hésite pas a le faire savoir

@+

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
Messages postés
13
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
1 décembre 2004

Bonjour,
j'ai une erreur 424 objet requis (sur screen.width) il me semble car j'ai bien la valeur trouvée sur Me.Width
je ne suis pas un pro !!!!!

Merci
Daniel
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
du developpe sous koi?
VB6?
ou quelque chose genre word , access , excel...?
car sous VB tu devrais pas pas avoir ce genre d'erreur...

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
Messages postés
13
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
1 décembre 2004

Oui, c'est vrai, j'aurai du être plus clair. Je suis sous VBA WORD
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
vraissemblablement tu doit déclarer:
Declare Function GetSystemMetrics32 Lib "User32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

puis faire un truc du genre car Screen n'est pas connu en VBA:

Dim ScreenW As Long
ScreenW = GetSystemMetrics32(0) 
'et donc
Me.Top = 0
Me.Left = ScreenW - Me.Width


Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
Messages postés
13
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
1 décembre 2004

Super,
Merci pour ton aide
Daniel
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
en fait non...

cela ne devrai pas marché pour la simple et bonne raison ke tu vas avoir des twip et des pixel pour faire un truc vraiment correct, il faut ke tu fasse:

Private Declare Function GetSystemMetrics32 Lib "User32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Private Declare Function apiCreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Any) As Long
Private Declare Function apiGetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function apiDeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long
   
Private Sub Form_Load()

    Dim ScreenW As Long

    Dim TwipsPerPixelX As Long
    Dim lngIC As Long

    Dim lngret As Long
    lngIC = apiCreateIC("DISPLAY", vbNullString, vbNullString, vbNullString)
    'If the call to CreateIC didn't fail, then get the Screen X resolution.
    If lngIC <> 0 Then
        TwipsPerPixelX = 1440 \ apiGetDeviceCaps(lngIC, 88)
        'Release the information context.
        apiDeleteDC (lngIC)
    Else
        ' Something has gone wrong. Assume an average value.
        lngret = MsgBox("Error..invalid Display Device Context..Exiting", vbOKOnly)
        Exit Sub
    End If

    ScreenW = GetSystemMetrics32(0)
    'et donc
    Me.Top = 0
    Me.Left = (ScreenW * TwipsPerPixelX) - Me.Width
End Sub


Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
Messages postés
13
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
1 décembre 2004

Encore merci, mais cela part dans les choux ??Malgré la bonne valeur de ScreenW 1024, la valeur calculée pour Me.Left 12287,25 donc en dehors de l'écran et j'y comprend pas grand chose

Daniel
Messages postés
402
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
12 octobre 2008
19
bonsoir Daniel , bonsoir Yomm

tu peux essayer

Private Sub UserForm_Initialize()
'testé avec Word2002 & Win XP
With UserForm1
.StartUpPosition = 3
.Left = Application.Width - Me.Width
End With
End Sub

bonne soiree
michel
Messages postés
402
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
12 octobre 2008
19
oouppsss

autant pour moi : ne tiens pas compte de mon message , je suis hors sujet ...désolé

michel
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
>>Daniel

c'est ce que j'avais remarqué avec la première proposition que je t'ai fait...mais avec la seconde, cela devrai fonctionner!

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!