CheckBox.Value ne change pas de valeur quand on click

Résolu
panda02 Messages postés 7 Statut Membre -  
panda02 Messages postés 7 Statut Membre -
Bonjour,

J'ai un petit soucis avec les valeurs des Checkbox. J'ai un macro dans Excel qui me donne un formulaire dans lequel on peut sélectionner une trentaine de checkbox, pour simplifier le travail certaines checkbox permettent de dé/cocher une série d'autre. Pour ce faire j'utilise le code suivant:

Private Sub CheckBoxDetails_Click()
' (dé)coche les boutons du sous menu quand on (dé)coche la case "détails"

If CheckBoxDetails.Value = True Then
CheckBoxDiver.Value = True
CheckBoxEquip.Value = True
CheckBoxPot.Value = True
CheckBoxLent.Value = True
Else
CheckBoxDiver.Value = False
CheckBoxEquip.Value = False
CheckBoxPot.Value = False
CheckBoxLent.Value = False
End If

End Sub


Le souci c'est que si l'utilisateur coche le CheckBox Details et ensuite décoche une des sous CheckBox, quand j'interroge la valeur des CheckBox il me trouve "true" même celle qui a été décochée par l'utilisateur.

Comment faire pour que la valeur affichée des CheckBox dans le userform soit bien mise à jour pour pouvoir les utiliser ensuite.

Merci

5 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Il doit y avoir un autre souci...
    Mes tests fonctionnent exactement comme souhaité :
    https://www.cjoint.com/?DLklHA6tO5J
    0
  2. panda02 Messages postés 7 Statut Membre
     
    Bjr Franck,

    merci, je vais regarder ça de chez moi fin de semaine (mon employeur bloque l'accès à ton lien)

    Je te dirai si ça marche à ce moment là

    Cordialement
    Raphaël
    0
  3. panda02 Messages postés 7 Statut Membre
     
    Bonjour Franck,

    sauf erreur de ma part, le fichier que tu l'as envoyé est vide

    Cordialement
    Raphaël
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      sauf erreur de ma part, le fichier que tu l'as envoyé est vide
      Erreur de ta part ;-)

      OUvre le fichier, tape ALT+F11, double clic sur UserForm et tapes F5
      0
  4. panda02 Messages postés 7 Statut Membre
     
    en effet erreur de ma part (je passe par macro pour accéder là et macro était vide)

    donc oui avec ton userform ça fonctionne.
    Le codage du mien étant identique au tien je ne comprends pas pourquoi ça ne marche pas. J'ai vu que tu ne mettais pas '.value' donc j'ai essayé en effaçant chez moi mais pas mieux.

    donc voilà comment je récupère ces valeurs pour créer un fichier

    If UserForm3.CheckBoxDiver.Value = True Then
        For j = 13 To 23
            variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13)
        Next j
    End If
                                    
    If UserForm3.CheckBoxCoordin.Value = True Then
        variable1 = variable1 & "<B>" & Cells(lgtitrfr, 24).Value & "</B> : " & ActiveCell.Offset(0, 23).Value & "<br>" & Chr(13)
    End If
                                
    If UserForm3.CheckBoxEquip.Value = True Then
        For j = 25 To 29
            variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13)
        Next j
    End If
                                    
    If UserForm3.CheckBoxPot.Value = True Then
        For j = 30 To 32
            variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13)
        Next j
    End If
                                    
    If UserForm3.CheckBoxLent.Value = True Then
        For j = 33 To 43
            variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13)
        Next j
    End If
    


    peut-être que ça te donnera une idée de ce qui coince.
    avant que je ne tente de faire un bouton qui regroupe ça fonctionnait parfaitement le fichier créer prenait bien exactement les info demandée en fonction des cases cochées. donc je pense qu'il y a une petite astuce de rafraîchissement de la valeur qui ne se fait pas ou qqch comme ça.

    Une autre idée ?
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Ce code, c'est pour après, pour la validation. Ton souci est en amont.
      Sans le classeur je ne peux pas t'aider. Pour me l'envoyer, passe par cjoint, ou alors envoie moi ton adresse mail par MP (clic sur mon pseudo et "lui écrire un message")...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. panda02 Messages postés 7 Statut Membre
     
    Merci, indirectement tu m'a guidé vers mon erreur,

    en fait en tout début de récupération des données j'avais un if case 'tout' cochée récupération de toute les données et si case 'tout' pas cochée vérification des case x pour récupérer les données x.

    Du coup même si je décochais les case ma macro n'allait même pas voire leur valeur puisque 'tout' reste coché

    Il m'a donc suffit d'effacer 3 lignes et tout fonctionne correctement

    Merci
    problème résolu
    0