Reset bouton pour toutes cases cocher d'une meme colonne

Résolu
Nico -  
 Nico -
Bonjour,

J'ai un bouton de commande qui reset mes cases à cocher (active X) c'est à dire que lorsque j'appui sur ce bouton toutes ces cases se décochent.
Mon soucis c'est que j'ai pas mal de cases et elles ne sont pas dans l'ordre, mais elles se trouvent sur la même colonne.

J'ai ce code :
Private Sub CommandButton1_Click()
For x = 1 To 75
ActiveSheet.OLEObjects("CHECKBOX" & x).Object.Value = False
Next x
End Sub

Ca marche pour les 75 cases mais entre ses cases j'en ai rajouter elle le numéro est > à 75 donc j'aimerais que ca prennent la colonne en compte directement pour ne pas avoir avec le soucis des numéros de checkbox qui est pris en compte dans mon code.

En esperant avoir été clair.

8 réponses

  1. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Bonjour

    Dans ton code tu remplaces le 75 par le nombre de case que tu as
    For x = 1 To 75
    Cordialement
    0
  2. Nico
     
    C'est pas ce que je recherche car j'ai x bouton pour x colonne .. j'ai donc des chekcbox répartie sur ces x colonnes..
    0
  3. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Ce n'est pas ce que tu dis dans tes 2 premières phrases, on comprend un bouton une colonne.
    Il faut être précis dans tes demandes.
    Crdlt
    0
  4. Nico
     
    oui x bouton pour x colonne, chaque bouton pour chaque colonne
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Mets un exemple de ton fichier sur le site ci-dessous et joins le lien dans ta prochaine réponse

    https://www.cjoint.com/
    0
  7. Nico
     
    http://cjoint.com/?3Hio7Eant5n

    Voila ;)
    0
  8. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Ce code regarde la propriété Left des Checkbox. Si elle est voisine de la propriété Left de la colonne (C dans l'exemple), à + ou - 10, c'est que le checkbox est concerné donc ...

    Private Sub CommandButton1_Click()
    Dim GaucheCol As Integer
    Dim obj As OLEObject
    
    GaucheCol = Sheets("Feuil1").Range("C1").Left
    For Each obj In ActiveSheet.OLEObjects
        If Left(obj.Name, 5) = "Check" And obj.Left < GaucheCol + 10 And obj.Left > GaucheCol - 10 Then
            obj.Object.Value = False
        End If
    Next obj
    End Sub 

    0
  9. Nico
     
    Pas très bien compris...
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Tes CheckBox sont rangées "par colonne".
      Elles ont une propriété Left qui représente la distance entre le bord gauche de l'application et leur propre bordure gauche.
      Les cellules ont également une propriété Left qui représente la distance entre le bord gauche de l'application et leur propre bordure gauche.

      Si tu connais la distance Left de ta colonne C, tu peux voir si, à peu près, tes checkbox sont placées dans cette colonne.

      C'est ce que fait le code.
      GaucheCol
      = propriété Left de la colonne C
      For Each obj In ActiveSheet.OLEObjects
      = boucle sur tous les contrôles de ta feuille
      If Left(obj.Name, 5) = "Check" 
      : vérifie qu'il s'agit d'un checkbox (car tu as aussi des boutons)

      obj.Left < GaucheCol + 10
      Si le bord gauche du contrôle est inférieur ou égal à 10 + bordure gauche de la colonne

      obj.Left > GaucheCol - 10
      si la gauche du contrôle est supérieur à la gauche de la colonne - 10

      10
      : pas des centimètres, mais des points (Excel ne compte même pas en pixels...)
      0
    2. Nico
       
      Merci pour ces explications détaillées.
      Cela ne marche pas, j'ai du passer en Sub sans le private ..
      Bug notamment pour : If Left(obj.Name, 5) = "Check"0
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Et pourtant cela fonctionne tel que je te l'ai mis...

      Ci-joint ton classeur avec une fonctionnalité en plus.
      Je t'ai déplacé deux cases à cocher pour te montrer l'utilité de la propriété Left
      0
    4. Nico
       
      pas de message d'erreur mais ca ne fonctionne pas.
      Il s'agit d'un bouton reset "remise à 0" et non cocher/ decocher.
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Une checkbox n'admet que 2 valeurs : False et True. Jamais 0...
      0