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 :

Masquer pages d'un multipage avec Option Button [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Janvier 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Masquer pages d'un multipage avec Option Button
    Bonjour à tous,

    Contexte :
    1 UserForm avec un multipage contenant 6 pages ("Principale", "Pos1", "pos2", "pos3", "pos4", "pos5")

    Sur la page "Principale", j'ai 5 Option button.

    J'aimerais que :

    lorsque j'active option button 1, seul les pages "Principale" et "Pos1" soient visibles.
    lorsque j'active option button 2, seul les pages "Principale", "Pos1" et "pos2" soient visibles.
    et ainsi de suite pour mes 5 bouton.

    Je saurais faire si je passais par un bouton de validation, mais j'aimerais que cela se fasse en live, à chaque clic sur chaque option button.

    Merci pour vos réponses.

    Philippe.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 843
    Points : 28 756
    Points
    28 756
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour rendre visible ou masquer la page d'un contrôle MutliPage c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MultiPage1.Pages(1).Visible = False
    Sachant que la première page est indexée à 0 et si tes contrôles OptionButton se nomme Nom1 jusque Nom5, il te suffit de faire une boucle.

    Je te conseille la lecture du tutoriel Utiliser les contrôles dans un UserForm, en VBA Excel où tu trouveras des explications sur les différentes propriétés et méthodes des contrôles qui te concerne et comment parcourir leurs collections
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Janvier 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta réponse.

    Rendre une page visible ou non, là j'arrive à m'en sortir.

    J'avais déjà fait un tour sur le lien que vous m'avez donné et c'est vrai qu'il est très intéressant.

    Malheureusement, étant donné que je débute en VBA, la réponse ne m'aide pas beaucoup.

    Faire la boucle sur les Option button, je pense que je devrais y arriver, enfin j'espère, par contre c'est tout le reste qui me pose un problème. Je pourrais peut-être affecter les conditions d'affichage a chaque click de chaque Option button, mais je trouve que cela sera lourd au niveau du code et pas très pro.

    Admettons que j'arrive à faire cette boucle, dois-je écrire cela dans un module que j'affecte à chaque Option button ?

    Merci pour votre aide.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 843
    Points : 28 756
    Points
    28 756
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voilà la procédure à placer dans le UserForm concerné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CtrlOption(number As Byte)
     Dim n As Byte
     For n = 1 To Me.MultiPage1.Pages.Count - 1
      Me.MultiPage1.Pages(n).Visible = n <= number
     Next
    End Sub
    Cette procédure doit être appelée par les procédures événementielles Click des contrôles OptionButton concernés
    Voici une exemple pour les deux premiers (Il y a en a donc 5)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub OptionButton1_Click()
     CtrlOption 1
    End Sub
    Private Sub OptionButton2_Click()
     CtrlOption 2
    End Sub
    Idéalement, on aurait pu passer par un module de classse mais si tu débutes, il vaut mieux en rester là.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Janvier 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup, c'est juste.....Parfait.

    Juste pour ma culture personnelle, en quoi consiste à " passer par un module de classe" ?

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 843
    Points : 28 756
    Points
    28 756
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Juste pour ma culture personnel, en quoi consiste " passer par un module de classe" ?
    Lorsque l'on insère un module ou un UserForm on a la possibilité d'insérer un module classe
    En gros, un module de classe est un module qui permet de définir un nouvel objet
    Voici quelques liens sur la question (pas eu le temps de les mettre en forme
    http://excel.developpez.com/faq/?page=ModuleClasse
    http://sinarf.developpez.com/access/vbaclass/
    http://fauconnier.developpez.com/art...neral/classes/
    http://tissotemmanuel.developpez.com...les-de-classe/
    http://www.developpez.net/forums/d62...e/#post3711643
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Janvier 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Ah ouais !!! c'est vrai que c'est un peu compliqué pour un néophyte comme moi.

    Je vais encore un peu attendre avant d'y passer

    En tous cas, merci pour les infos. Je passe ce topic en résolu.

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

Discussions similaires

  1. [XL-2007] Modifier valeur de cellule avec Option button
    Par tiotsiaka dans le forum Excel
    Réponses: 1
    Dernier message: 04/05/2012, 19h06
  2. Réponses: 3
    Dernier message: 20/03/2010, 16h31
  3. Ajout de pages à un multipage par spin button
    Par argonath dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2009, 11h52
  4. Editeur multipage avec page XML
    Par DaveShot dans le forum Eclipse Platform
    Réponses: 20
    Dernier message: 08/04/2009, 12h14
  5. Navigation entre pages avec option de tri,etc
    Par elfenlieder dans le forum Ruby on Rails
    Réponses: 12
    Dernier message: 30/10/2007, 13h54

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