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 :

Afficher UserForm avec un choix dans ComboBox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut Afficher UserForm avec un choix dans ComboBox
    Bonjour,
    Aucun souci pour afficher un UserForm à partir d'un choix dans la liste (UserfForm1, UserfForm2, UserfForm3) d'un ComboBox .

    Dans le UserfForm1:
    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
    Private Sub UserForm_Initialize()   
       'formulaire plein écran
        With Form_producteurs
            .StartUpPosition = 1
            .Width = Application.Width
            .Height = Application.Height
            .Left = 0
            .Top = 0
        End With
        'facteur zoom contrôles
        Me.Zoom = largeurEcran * 100 / 1150
    End Sub
     
    Private Sub ComboBox1_Click()
        With ComboBox1
            If .ListIndex <> -1 Then UserForms.Add(.Value).Show
        End With
    End Sub
    Dans un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Function largeurEcran()
      largeurEcran = GetSystemMetrics(0)
    End Function
    À l'initialisation de l'UserfForm1 il s'ouvre suivant le zoom défini.
    Par contre suite au choix d'un autre formulaire le zoom ne s'applique pas, pourquoi ?
    Quelqu'un aurait-il une solution ?
    Merci d'avance pour vos réponses.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 194
    Par défaut
    Bonjour,

    pas certain d'avoir compris... vous cherchez à mettre vos userform 1,2 et 3 en plein écran ou sur la base des dimensions de la fenetre excel ?
    ce que je crois comprendre du probleme c'est que l'ouverture des forms 2 et 3 ce fait via la forms 1 mais que même si le dimensionnement de la form 1 s'applique correctement le dimensionnement des forms 2 et 3 ne se fait pas... est-ce bien ça ?

    Si c'est bien cela je ne vois pas dans votre code, du code spécifique au dimensionnement de ces 2 autre forms !
    Si vous pensiez que le fait de dimensionner la première dimensionneras les 2 autres automatiquement c'est rapé !
    Il faut faire la même chose pour les autres.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut
    Bonjour,
    Si c'est bien cela je ne vois pas dans votre code, du code spécifique au dimensionnement de ces 2 autre forms !
    Si vous pensiez que le fait de dimensionner la première dimensionneras les 2 autres automatiquement c'est rapé !
    Il faut faire la même chose pour les autres
    Navré j'ai oublié de le péciser, voici le code dans les 2 autres UserForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Initialize()
       'formulaire plein écran
        With UserForm1
            .StartUpPosition = 1
            .Width = Application.Width - 11
            .Height = Application.Height - 11
            .Left = 0
            .Top = 0
        End With
        'facteur zoom contrôles
        Me.Zoom = largeurEcran * 100 / 1150
    End Sub
    L'affichage plein écran et le dimensionnement de la form 2 ou 3 ne s'applique pas à leur ouverture.

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Il faut que vore procédure Userform_Initialize() soit dans chaque module des Userforms que vous voulez en plein écran...

    Pour simplifier, créez une procédure dans votre module standard :
    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
    Option Explicit
     
    Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Function largeurEcran()
      largeurEcran = GetSystemMetrics(0)
    End Function
     
    Sub Init(U As Object)
       'formulaire plein écran
        With U
            .StartUpPosition = 1
            .Width = Application.Width
            .Height = Application.Height
            .Left = 0
            .Top = 0
            .Zoom = largeurEcran * 100 / 1150
        End With
    End Sub
    Ainsi, dans chacun des Userform que vous voudrez voir affiché en plein écran, suffira de placer ce code dans son module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
     
    Private Sub UserForm_Initialize()
        Init Me
    End Sub

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut
    Bonjour et merci pijaku,
    Ça fonctionne à merveille.

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

Discussions similaires

  1. [AC-2007] Afficher un état selon choix dans un formulaire
    Par maid dans le forum IHM
    Réponses: 4
    Dernier message: 09/12/2009, 12h21
  2. Réponses: 2
    Dernier message: 12/10/2009, 22h55
  3. Afficher menu avec Clic Droit dans un userform
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2008, 11h12
  4. [vba-e] Liste de choix dans ComboBox
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/07/2006, 15h53
  5. Réponses: 3
    Dernier message: 01/06/2006, 19h45

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