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 :

Faire une boucle sur des OptionButton d'une feuille dans une userform


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Faire une boucle sur des OptionButton d'une feuille dans une userform
    Bonjour à tous,

    Petit souci technique, j'essaye d'initialiser mon userform à partir d'une condition sur plusieurs OptionButton d'une feuille :

    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
    Public Sub UserForm_Initialize()
    
    Worksheets("BuildingClient Connected List").Activate
    
    Dim Lig As Long
    Dim n As Long
    
    Lig = 3 'première ligne à vérifier
    Do While Not IsEmpty(Range("A" & Lig))
        Lig = Lig + 1
        n = n + 1
    Loop
    
    For i = 0 To n
    
        If Worksheets("BuildingClient Connected List").("OptionButton"&i).Value = True Then
        
            UsfBuildingDetail.TextBoxAdress1.Value = "Bonjour!"
            
        End If
        
    Next i
        
    End Sub
    Avec un seul bouton comme ci-dessous pas de soucis mais avec la boucle ça m'affiche un message d'erreur (j'ai aussi essayé Controls("OptionButton"&i)=True...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Worksheets("BuildingClient Connected List").OptionButton0.Value = True Then
    Si quelqu'un a une idée ce serait top!

    Merci.

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Je suppose que les boutons d'option sont des contrôles ActiveX donc des objets OLE, "OleObject". Les contrôles "OLEObject" n'ont pas de propriété "Value" donc il n'est pas possible de récupérer directement la valeur du bouton, par contre, ils possèdent une propriété "Object" qui elle, à une propriété "Value" et là, il est possible de connaître l'état du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Test()
     
        Dim Ctrl As OLEObject
     
        'contrôle ActiveX
        For Each Ctrl In ActiveSheet.OLEObjects
     
            MsgBox Ctrl.Name
            MsgBox Ctrl.Object.Value
     
        Next Ctrl
     
    End Su
    ton code devrait être un peu du genre :
    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
     
    Public Sub UserForm_Initialize()
     
        Dim Lig As Long
        Dim n As Long
     
        Worksheets("BuildingClient Connected List").Activate
     
        Lig = 3 'première ligne à vérifier
     
        Do While Not IsEmpty(Range("A" & Lig))
     
            Lig = Lig + 1
            n = n + 1
     
        Loop
     
        For Each Ctrl In Worksheets("BuildingClient Connected List").OLEObjects
     
            Select Case Ctrl.Name
     
                Case "OptionButton1"
     
                    If Ctrl.Object.Value = True Then
     
                        'code...
     
                    End If
     
                Case "OptionButton2"
     
                    If Ctrl.Object.Value = True Then
     
                        'code...
     
                    End If
     
            End Select
     
        Next Ctrl
     
    End Sub
    Hervé.

Discussions similaires

  1. [XL-2010] Fair une boucle sur des objets Ranges
    Par Escorpion dans le forum Excel
    Réponses: 6
    Dernier message: 18/03/2015, 18h14
  2. [HF15] realiser une boucle sur des fichiers et des rubriques de BD
    Par emmanuel Zoti Bi dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 03/08/2013, 12h20
  3. XPATH > une boucle sur des noeuds enfants ?
    Par mastronic dans le forum Débuter
    Réponses: 6
    Dernier message: 09/10/2009, 16h03
  4. Une boucle sur des dates
    Par Nowwis dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 29/08/2009, 11h51
  5. Faire une boucle sur des labels ou textBox
    Par Actarusdu60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2008, 18h17

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