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

Macros et VBA Excel Discussion :

UserForm centré et figé [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut UserForm centré et figé
    Je voudrais centrer mon UserForm et également empêcher son déplacement.

    pour le centrer, je n'ai pas de souci (Propriété : StartUpPosition : 2-Centerscreen)

    Par contre pour empêcher son déplacement, j'ai trouvé un code mais je suis obligé de donner la position du UserForm. Cela ne m'arrange pas car au boulot, on a des écrans de taille différente (de 15" à 22").

    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Quel est le but ? Empêcher l'utilisateur de déplacer le userform ?
    Si oui, cela peut se faire en utilisant plusieurs fonctions de l'Api de Windows.

    Cela peut également se faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Layout()
     Me.Show
    End Sub
    Cette deuxième solution "punira" les contrevenants (essaye et tu vas voir pourquoi) mais elle s'avèrera efficace (le userform retournera à sa place) et ils n'auront plus envie de recommencer

  3. #3
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bjr à toi et merci mais çà ne fonctionne pas car j'ai un UserForm nommée Accueil avec des ButtonCommand qui permettent d'ouvrir d'autres UserForm et ainsi de suite. A chaque clic sur un bouton de commande, cela décharge le UserFOrm Accueil et charge le UserForm associé au bouton de commande. Voici une partie de mon code dans le UserForm Accueil :

    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
    Private Sub CommandButton_Referentiel_documentaire_Click()
        Unload Me
        UserForm_Referentiel_doc.Show
    End Sub
    Private Sub CommandButton_Revues_Click()
        Unload Me
        UserForm_Revues.Show
    End Sub
    Private Sub CommandButton_Extractions_Click()
        Unload Me
        UserForm_Extractions.Show
    End Sub
    Private Sub CommandButton_Archives_Click()
        Unload Me
        UserForm_Archives.Show
    End Sub
    et voici le code de l'ouverture du UserForm Accueil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
    Sub Ouverture_UserForm_Accueil()
     
    Sheets("Menu").Visible = True
     
        Dim Sh     As Worksheet
        For Each Sh In ThisWorkbook.Worksheets
            With Sh
                If Not .Name = "Menu" Then .Visible = xlSheetVeryHidden    'False
            End With
        Next
        UserForm_Accueil.Show
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Et alors ?
    Tout userform centré qui contiendrait le code que je t'ai montré dans son évènement Layout serait automatiquement recentré si l'utilisateur essayait de le déplacer !

  5. #5
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Ok, je viens de placer ton code à l'ouverture du UserFOrm Accueil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_Layout()
     Me.Show
    End Sub
    Private Sub CommandButton_Referentiel_documentaire_Click()
        Unload Me
        UserForm_Referentiel_doc.Show
    End Sub
    Private Sub CommandButton_Revues_Click()
        Unload Me
        UserForm_Revues.Show
    End Sub
    J'ai le code erreur suivant sur le :
    Feuille déjà affiché; Affichage modal impossible

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je ne sais pas ce que tu fabriques et fais. Je ne suis pas devant ton écran.
    Je vais te demander de faire très exactement cette petite expérience :
    1) Une feuille excel avec un bouton de commande commandbutton1 et ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
     UserForm1.Show
    End Sub
    2) un userform userform1 avec, dessus, un bouton de commande commandbutton1 et ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
      UserForm2.Show
    End Sub
     
     
    Private Sub UserForm_Layout()
     Me.Show
    End Sub
    2) un userform userform2 avec, dessus, un bouton de commande commandbutton1 et ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
      UserForm2.Show
    End Sub
     
     
    Private Sub UserForm_Layout()
     Me.Show
    End Sub
    ATTENTION : la propriété Showmodal de chacun de ces deux userform doit bien évidemment être à False et la propriété StartUpPosition de chacun d'eux à 1 (CenterOwner)

    Lance : clique sur le bouton de la feuille de calcul et amuse-toi ensuite. Tu verras bien, hein ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  2. Réponses: 2
    Dernier message: 13/10/2004, 14h52
  3. Rotation d'un rectangle autour du centre de gravité
    Par bucheron dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 22/06/2004, 11h01
  4. Chiffres après la virgule figés
    Par bondjames dans le forum Bases de données
    Réponses: 6
    Dernier message: 10/03/2004, 23h09
  5. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02

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