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 :

Boucler sur Multipages [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Par défaut Boucler sur Multipages
    Bonjour,
    Dans un UserForm, j'ai un multipages qui contient 8 pages, dans chacune des page, j'ai plusieurs OptionButton sur lesquel je fais une boucle.
    Mon problème est que quand j'ai un OptionButton dans la page1 qui est True, ce dernier reste True même quand je vais à la page 7 par exemple et que je met und des optionButton de la page 7 à True. Donc quand j'effectue ma boucle sur les OptioButton, je tombe toujours sur le premier qui est resté à True.
    J'ai trouvé une solution qui met tous les otionButton à False à la fin de la boucle, mais je perd toujours celle qui était à true avant la fin de la macro!.

    Donc j'aimerais boucler sur les optionButton de la page que je vois seulement.
    Commment on fait pour boucler seulement sur la page visible du Multipages ?

    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
    Private Sub CommandButton1_Click()
    Dim Ctrl As Control
    'Boucle sur tous les contrôles
    For Each Ctrl In Me.Controls
    'Vérifie qu'il s'agit d'un OptionButton
    If TypeOf Ctrl Is MSForms.OptionButton Then
    'Véfifie si l'OptionButton fait partie d'un groupe nommé "GR1"
    If Ctrl.GroupName = "GR1" Then
    'Affiche le Caption de l'optionButton qui a la valeur True
    If Ctrl.Value = True Then
    MsgBox Ctrl.Caption
    'Sort de la boucle (Il ne peut y a voir qu'une
    'réponse à True)
    Exit For
    End If
    End If
    End If
    Next
    End Sub
     
    If Ctrl.GroupName = "GR1" Then
    If Ctrl.Value = True Then
        Ctrl.Value = False
    End If
    End If

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Essayez avec votre code modifié
    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
    Private Sub CommandButton1_Click()
    Dim P As Page
    '--- Détermine la page active ---
    Set P = Me.MultiPage1.Pages(Me.MultiPage1.Value)
    MsgBox P.Name   'pour visualiser quelle est la page active (à virer)
     
    '---
    Dim Ctrl As Control
    'Boucle sur tous les contrôles
    For Each Ctrl In P.Controls '/// les contrôles de la Page et non ceux du UserForm
      'Vérifie qu'il s'agit d'un OptionButton
      If TypeOf Ctrl Is MSForms.OptionButton Then
        'Véfifie si l'OptionButton fait partie d'un groupe nommé "GR1"
        If Ctrl.GroupName = "GR1" Then
          'Affiche le Caption de l'optionButton qui a la valeur True
          If Ctrl.Value = True Then
            MsgBox Ctrl.Caption
            'Sort de la boucle (Il ne peut y a voir qu'une
            'réponse à True)
            Exit For
          End If
        End If
      End If
    Next Ctrl
     
     
    ''If Ctrl.GroupName = "GR1" Then
    ''  If Ctrl.Value = True Then
    ''      Ctrl.Value = False
    ''  End If
    ''End If
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Par défaut
    ça fonction à merveille!
    Merci!

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

Discussions similaires

  1. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 15h19
  2. [Excel VBA] Boucler sur un userform
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2005, 02h57
  3. Boucler sur des champs texte
    Par syl2095 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/11/2004, 17h15
  4. boucler sur des checkboxes
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/10/2004, 09h27
  5. [VB6] Comment boucler sur des controls d'un form ?
    Par lankviller dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/01/2003, 17h29

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