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 :

boucle sur OptionButton avec injection de valeurs dans une colonne [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 133
    Par défaut boucle sur OptionButton avec injection de valeurs dans une colonne
    Bonjour à toutes et à tous,

    Je bloque, je n'arrive pas à conceptualiser le truc..
    Voilà ce que je souhaiterais faire :
    Une boucle sur 6 OptionButtons avec injection de données dans une colonne de 6 lignes.
    Dans mon exemple, un OptionButton coché renvoie la valeur 2 dans la cellule de destination.
    Le problème avec le code si dessous est que dès que je coche le premier bouton, il me renvoie la valeur 2 sur toute la colonne.

    Quelqu'un aurait-il une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    With UserForm1
     
    For i = 1 To 6
     
        If .Controls("OptionButton" & i).Value = True Then
            For j = 5 To 10
            ThisWorkbook.Worksheets("Tableau").Cells(j, 2).Value = 2
            Next j
        End If
     
    Next i
     
    End With

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    j'arrive pas à comprendre ta demande mais c'est ton code qui demande à remplir toutes les lignes avec 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For j = 5 To 10
            ThisWorkbook.Worksheets("Tableau").Cells(j, 2).Value = 2
            Next j
    une capture écran expliquera mieux ton problème
    BONNE CONTINUATION

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 133
    Par défaut
    Bonjour BENNASR et merci de ta réponse,

    Oui effectivement le code renvoie 2 dans toute la colonne mais ce n'est pas ce que je souhaite.
    Je m'explique un peu mieux, on va imaginer 6 items avec 3 OptionButtons chacun ce qui donne ceci :

    Item 1 : OptionButton21, OptionButton11, OptionButton01,
    Item 2 : OptionButton22, OptionButton12, OptionButton02,
    Item 3 : OptionButton23, OptionButton13, OptionButton03,
    Item 4 : OptionButton24, OptionButton14, OptionButton04,
    Item 5 : OptionButton25, OptionButton15, OptionButton05,
    Item 6 : OptionButton26, OptionButton16, OptionButton06,


    Si OptionButton21 est coché => 2 en B5
    Si OptionButton11 est coché => 1 en B5
    Si OptionButton01 est coché => 0 en B5
    Si OptionButton22 est coché => 2 en B6
    Si OptionButton12 est coché => 1 en B6
    Si OptionButton02 est coché => 0 en B6
    Si OptionButton23 est coché => 2 en B7
    etc ...

    Pour éviter les If à répétition, je cherche à faire une boucle sur les différents contrôles et les cellules de destination.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Plutôt que de créer dynamiquement des boutons d'options, pourquoi ne pas utiliser un ListBox Options qui est dynamique.

    Boisgontier

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 133
    Par défaut
    Merci Jacques pour cet outil fort intéressant, mais je ne cherche pas à créer dynamiquement mes boutons, ils sont déjà créés.

    Je cherche à faire une boucle sur les noms des OptionButtons et les cellules de destination.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 133
    Par défaut
    Salut à tous,

    J'ai trouvé une solution, c'était pas bien compliqué
    Cela peut servir à des débutants comme moi.
    Je répète ce à quoi je voulais arriver : boucler sur des OptionButtons et injecter les valeurs les unes à la suite des autres dans une colonne.
    Dans l'exemple ci dessous les boutons de gauche renvoient la valeur 1 et ceux de droite la valeur 2.

    Nom : boucle.jpg
Affichages : 551
Taille : 66,9 Ko

    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
    Sub boucle()
     
    Dim i As Integer
     
    With UserForm1
     
           For i = 1 To 3
     
                 If .Controls("OptionButton1" & i).Value = True Then Worksheets("Feuil1").Cells(i, 3).Value = 1
                 End If
     
                 If .Controls("OptionButton2" & i).Value = True Then Worksheets("Feuil1").Cells(i, 3).Value = 2
                 End If
     
          Next i
     
    End With
     
     
    End Sub

    Y'a certainement plus classe mais ça fonctionne

    A +

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

Discussions similaires

  1. [Toutes versions] Alterner les couleurs sur changement de valeur dans une colonne
    Par Invité dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/01/2015, 09h20
  2. Réponses: 4
    Dernier message: 28/03/2014, 16h32
  3. Réponses: 3
    Dernier message: 11/03/2010, 11h44
  4. Réponses: 6
    Dernier message: 04/11/2008, 22h35
  5. Réponses: 7
    Dernier message: 14/01/2008, 12h12

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