IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Centrer un formulaire sur n importe quel écran


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 264
    Points : 108
    Points
    108
    Par défaut Centrer un formulaire sur n importe quel écran
    Bonsoir,
    savez vous comment on avoir en permanence un formulaire centré sur l'écran pour que la totalité du formulaire ( bouton, zone de texte..) soit contenu sur l'ecran sans avoir a bouger la barre de défilement pour atteindre ces controles?
    Thanks a lot.
    Ce forum est excellent.
    Merci à ceux qui l'administre.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Essaie ce code de la faq.

    A+

  3. #3
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Points : 239
    Points
    239
    Par défaut
    bonjour

    citation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Essaie ce code de la faq.
    le code que LedZeppII t'a recommandé est parfaitement efficace pour ton problème car je l'ai déjà testé il marche parfaitement. Et n'oublies pas de mettre résolu.Très important.
    La clé de la solution, vous l'avez. "Ce qui se concoit bien...................... et les mots pour le dire viennent aisement. Twamitotela sana

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 264
    Points : 108
    Points
    108
    Par défaut centrer formulaire sur plein ecran
    Bonjour à tous.
    J'ai bien essayé d'insérer ce bout de code issu de la FAC dans un module de ma BDD.
    Si je comprends bien, j isère la première partie de ce code et la dernière dans un module.
    Les 3 lignes de code du milieu sont à inserer dans mon formulaire sous un bouton.
    Pourtant quand je clique le formualire bouge legerement mais sans se centrer.
    Merci aux bonnes ames.

  5. #5
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Tu crée un nouveau module (que tu appelle par exemple modCentrer) dans le quel tu colle le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Option Explicit
     
    Private Type Position
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End Type
     ' --Pour obtenir les coordonnées de la fenêtre parent
    Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
     ' --Pour obtenir les coordonnées de notre formulaire
    Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, _
    lpRect As Position) As Long
     ' --Pour obtenir les coordonnées de l'écran
    Public Declare Function GetDesktopWindow Lib "user32" () As Long
     ' --Pour positionner et dimensionner la fenêtre
    Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, _
    ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long, ByVal bRepaint As Long) As Long
     
    Public Sub Positionner(frm As Form)
    Dim FParent As Position '--Fenêtre Parent
    Dim Fenetre As Position
    Dim Largeur As Integer
    Dim Hauteur As Integer
    Dim LParent As Integer ' --Largeur Fenêtre Parent
    Dim HParent As Integer ' --Hauteur Fenêtre Parent
    Dim PParent As Long ' --Posion parent
    On Error GoTo Erreur
     ' --Trouver les coordonnées de mon formulaire à centrer.
    PParent = GetParent(frm.hwnd)
     ' --Obtenir les coordonnées de mon formulaire et celles de son parent.
    Call GetWindowRect(frm.hwnd, Fenetre)
     ' --Si le parent est la fenêtre Access, pas de soustracion
    If PParent <> Application.hWndAccessApp Then
        Call GetWindowRect(PParent, FParent)
    Else
        ' -- les coordonnées du Desktop
        Call GetWindowRect(GetDesktopWindow(), FParent)
    End If
     ' --Calcul de la largeur et de la hauteur du parent
    With FParent
        LParent = .Right - .Left
        HParent = .Bottom - .Top
    End With
     ' --Calcul de la largeur et de la hauteur de mon formulaire
    With Fenetre
        Largeur = .Right - .Left
        Hauteur = .Bottom - .Top
        .Left = (LParent - Largeur) \ 2
        .Top = (HParent - Hauteur) \ 2
    End With
     ' --Centrer mon formulaire
    Call MoveWindow(frm.hwnd, Fenetre.Left, Fenetre.Top, Largeur, Hauteur, bRepaint:=True)
    Exit Sub
    Erreur:
    MsgBox "Erreur: " & Err.Number & vbCrLf & Err.Description
    End Sub
    Et ensuite, tu peux apeller la fonction de centrage en utilisant l'instruction :
    Où tu veux dans ton code
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    tu veux centrer ton formulaire ou l'agrandir ?


  7. #7
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Il veut le centrer c'est écrit dans le titre du topic et dans son premier post
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 264
    Points : 108
    Points
    108
    Par défaut centrer un formulaire sur n importe quel écran
    J ai bien insérer ce code comme il se doit. Par contre j ai bien mon formulaire qui apparait mais là il fait 4-5 fois la taille de mon écran, donc ce n est pas trop ce que je voulais à la base.
    J aimerai que la totalité de mes formulaires tiennent en permanence sur l'ecran sans avoir à atteindre les controle avec la barre de défilement.
    Merci encore

  9. #9
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Euu, j'ai testé le code chez moi, et il marche très bien ...
    Je vois pas là
    Je te remets le code, dès fois que j'aie fait une erreur de copie ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Option Explicit
     
    Private Type Position
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End Type
     ' --Pour obtenir les coordonnées de la fenêtre parent
    Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
     ' --Pour obtenir les coordonnées de notre formulaire
    Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, _
    lpRect As Position) As Long
     ' --Pour obtenir les coordonnées de l'écran
    Public Declare Function GetDesktopWindow Lib "user32" () As Long
     ' --Pour positionner et dimensionner la fenêtre
    Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, _
    ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long, ByVal bRepaint As Long) As Long
     
    Public Sub Positionner(frm As Form)
    Dim FParent As Position '--Fenêtre Parent
    Dim Fenetre As Position
    Dim Largeur As Integer
    Dim Hauteur As Integer
    Dim LParent As Integer ' --Largeur Fenêtre Parent
    Dim HParent As Integer ' --Hauteur Fenêtre Parent
    Dim PParent As Long ' --Posion parent
    On Error GoTo Erreur
     ' --Trouver les coordonnées de mon formulaire à centrer.
    PParent = GetParent(frm.hwnd)
     ' --Obtenir les coordonnées de mon formulaire et celles de son parent.
    Call GetWindowRect(frm.hwnd, Fenetre)
     ' --Si le parent est la fenêtre Access, pas de soustracion
    If PParent <> Application.hWndAccessApp Then
        Call GetWindowRect(PParent, FParent)
    Else
        ' -- les coordonnées du Desktop
        Call GetWindowRect(GetDesktopWindow(), FParent)
    End If
     ' --Calcul de la largeur et de la hauteur du parent
    With FParent
        LParent = .Right - .Left
        HParent = .Bottom - .Top
    End With
     ' --Calcul de la largeur et de la hauteur de mon formulaire
    With Fenetre
        Largeur = .Right - .Left
        Hauteur = .Bottom - .Top
        .Left = (LParent - Largeur) \ 2
        .Top = (HParent - Hauteur) \ 2
    End With
     ' --Centrer mon formulaire
    Call MoveWindow(frm.hwnd, Fenetre.Left, Fenetre.Top, Largeur, Hauteur, bRepaint:=True)
    Exit Sub
    Erreur:
    MsgBox "Erreur: " & Err.Number & vbCrLf & Err.Description
    End Sub
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 264
    Points : 108
    Points
    108
    Par défaut centrer un formulaire sur n importe quel écran
    Bon c est mieux merci.
    Je ne sais pas d ou venait le pb.
    Par contre en voyant le résultat je me demande quellle est l utilité de ce module.
    Est ce la même chose qu un
    Moi je pensais que même si en mode creation tu avais un formulaire qui sortait du cadre de l ecran alors en mode formulaire il serait automatiquement dimensionné par rapport à la taille de l'ecran.
    Merci de m'éclaircir.
    Merci

  11. #11
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    DoCmd.Maximise agrandit la fenêtre du formulaire (donc elle prend presque toute la taille de l'écran), alors que le code de Morsi centre ton formulaire au centre de l'écran
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Désolé de déterrer ce sujet mais j'en ai besoin

    Je suis sous Access 2010 et voudrais que chaque formulaire ouvert soit centré à l'écran quelle que soit la résolution de l'écran.

    J'ai un formulaire qui s'ouvre au démarrage de la base et d'autres ouverts grâce à des boutons d'action de ce formulaire d'accueil.

    J'ai créé un module dans lequel j'ai coller le code présenté ci-dessus et j'ai fait un Call Positionner(Me) dans un Private Sub Form_Open() mais j'ai une erreur à l'ouverture.

    En fait, je ne sais pas où le positionner J'imagine en plus qu'il faut le faire pour chaque formulaire que je souhaite centrer ?

    Merci de votre aide.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Any help please ?

  14. #14
    Nouveau Candidat au Club
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Merci je séchais...

    Pour info fonctionne avec 2010

    Par contre, je serrais intéressé pour la gestion du multi-écrans.

    Car centre systématiquement sur l'écran principal et pas sur l'écran de la fenêtre "parent"

Discussions similaires

  1. [AC-2010] Ajuster formulaire sur n'importe quel écran
    Par patito1975 dans le forum Access
    Réponses: 8
    Dernier message: 22/06/2015, 15h43
  2. [AC-2010] Centrer un formulaire sur l'écran
    Par Tchebichef dans le forum IHM
    Réponses: 11
    Dernier message: 04/01/2013, 16h24
  3. [XL-2003] Centrer un formulaire sur l'écran
    Par papyxy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2012, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo