Boucle checkbox vba excel

guetteur -  
arnokite Messages postés 2 Statut Membre -
Bonjour, je voudrais voir si des checkbox sont à vrai ou pas sur VBA pour excell. Mon gros problème est de faire boucler les checkbox il y en a une centaine.
Voilà mon code erroné

For i = 1 To 100

Dim a

If Feuil3.CheckBox"&i.Value = true Then
a = 1
End If

Next

ce qui marche c'est sans boucle:

If Feuil3.CheckBox1.Value = true Then
a = 1
End If

Merci de votre aide
Configuration: Windows XP
Internet Explorer 6.0

10 réponses

  1. Xavstarblues Messages postés 10585 Date d'inscription   Statut Contributeur Dernière intervention   1 858
     
    Bonjour, il semble qu'il y ait un gros problème dans ta boucle, tu redefinis a chaque fois ta variable "a" et au final "a" ne te retourne true ou false que pour ta dernière checkbox
    1
  2. arnokite Messages postés 2 Statut Membre 2
     
    Salut,

    J'avais le même problème que toi et voilà comment je l'ai résolu, si cela peux t'aider:

    Lorsque tu insères tes checkbox dans la feuille excel, tu fait un clic droit sur la checkbox, tu clic sur "Format de contrôle".
    Dans l'onglet "Contrôle" tu associes une cellule de ta ligne à selectionner ex: Cellule Liée : C4.
    Lorsque celle ci est associée, tu t'aperçois que lorsque la case à cocher est cochée, il apparait "VRAI" dans la cellule liée.
    Il te reste à faire une boucle sur les lignes :

    If Sheets("club").Range("C4").Offset(ligneclub, 0) = True Then
    ...

    ligneclub = ligneclub+1

    Il faut vérifier la cellule par "true" et non pas "VRAI" comme elle l'indique.

    J'espère t'avoir aider....

    @+++
    Arnaud
    1
  3. arnokite Messages postés 2 Statut Membre 2
     
    PS :

    Cela te permet également de remettre toutes tes checkboxs à 0, tu met Faux dans la colonne sélectionnée.

    @
    1
  4. guetteur
     
    a oui pas con mais le problème réel ne vient pas de là. le problème vient de cet ligne

    CheckBox"&i.

    je ne sais pas comment appeler ma checkbox
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. amigo
     
    bonjour,

    Voici un petit code qui pourra t'aider
    il passe en revue tous les controles qui sont sur ton userform, et recupère la valeur des controles CheckBox, à toi d'en faire ce que tu as prévu.
    j'ai affecté cette macro a CommandButton1, il faudra adapter.
    Private Sub CommandButton1_Click()
    Dim ctrl As control, nom As String
    For Each ctrl In Me.Controls
      nom = ctrl.Name
      If InStr(nom, "CheckBox") = 1 Then
      MsgBox nom & " = " & ctrl.Value
    End If
    Next
    
    0
    1. guetteur
       
      comment tu définis Me.Controls ??
      0
  7. guetteur
     
    parce que moi j'ai une erreur de compilation en écrivant Feuil.Controls
    0
  8. amigo
     
    En fait ça marche sur un UserForm, pour une feuille je n'ai pas essayé, je cherche.
    0
  9. guetteur
     
    ok j'ai trouvé je peux en insérer une mais c'est sur VBA. alors que moi j'ai placé mes 100 checkbox dans des cellules sous excel en face d'éléments que je veux "séléctionner".
    0
  10. guetteur
     
    If Feuil3.CheckBox(i).Value = True Then
    a = 1
    End If

    en faisant la phrase ne s'écrit pas en rouge mais si je lance la commande j'ai une erreur compil
    0