Comment appeller la valeur d'un checkbox renommé ?

Résolu
Datazoom66 Messages postés 4 Statut Membre -  
Datazoom66 Messages postés 4 Statut Membre -
Bonjour,
Je me décide à faire appel a des pros, je bute sur ce problème depuis 3 jours.

Je suis sur excel 2007. j'ai fait un simple tableau avec 4 colonnes:
Date, Numéro de téléphone, nom du client, et une case a cocher.

Cette case est insérée automatiquement via un userform dans lequel j'ai utilisé la méthode ActiveSheet.CheckBoxes.Add. j'ai même poussé le vice a renommer la case à cocher avec un nom du genre "Case" + le numéro de la ligne.
Le problème, c'est que je parviens pas à récupérer la valeur de cette case (cochée ou pas).
J'ai nommé la case, parce qu'avant, en faisant beaucoup d'essais, les case étaient nommées case à cocher 45, 46, 47 etc, même si je les effaçais, le numéro s'incrémentait tout le temps.
De plus, la valeur s'affiche dans la cellule voisine (çà c'est normal) mais affiche toujours VRAI ou FAUX.
Je voudrait que la valeur affichée soit "Validée" ou "A valider"...

Y a t-il ici un champion qui pourra m'aider a régler ces problèmes ?

2 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    perso j'évite les objets sur les feuilles. Trop nombreux et excel se met à merdouiller.
    Un simple x dans une colonne, en plus beaucoup plus facile à gérer.
    A la limite tu peux ajouter une macro pour le mettre ou l'enlever sur double-clic, et mettre une jolie coche verte ou croix rouge à la place du x
    eric
    2
  2. thev Messages postés 2005 Date d'inscription   Statut Membre Dernière intervention   721
     
    Bonsoir,

    Il suffit d'affecter la macro ci-dessous à vos cases à cocher.
    Sub case_change()
        Dim case_cochée As Boolean
        Dim cellule_liée As Range
        
        Set cellule_liée = Range(Shapes(Application.Caller).ControlFormat.LinkedCell)
        case_cochée = cellule_liée.Value
        If case_cochée Then cellule_liée = "Validée" _
        Else cellule_liée = "A valider"
    End Sub


    0
    1. Datazoom66 Messages postés 4 Statut Membre
       
      Bonjour et merci d'avoir répondu si vite, mais malheureusement, ce code ne fonctionne pas...
      J'ai toujours la variable VRAI/FAUX
      0
    2. thev Messages postés 2005 Date d'inscription   Statut Membre Dernière intervention   721
       
      En fait, la macro doit être placée dans le code de la feuille.
      Si elle est placée dans un module, alors il faut la modifier comme ci-dessous
      Sub case_change()
          Dim case_cochée As Boolean
          Dim cellule_liée As Range
          
          With ActiveSheet
              Set cellule_liée = Range(.Shapes(Application.Caller).ControlFormat.LinkedCell)
              case_cochée = cellule_liée.Value
              If case_cochée Then cellule_liée = "Validée" _
              Else cellule_liée = "A valider"
          End With
      End Sub 


      ci-joint exemple
      https://cjoint.com/c/IClt6fxFm5N
      0
    3. Datazoom66 Messages postés 4 Statut Membre
       
      Merci de votre réponse, et je n'y comprend plus rien !!
      Dans votre exemple, ca fonctionne, mais si je mets votre code dans un module, ca ne fonctionne pas!!!

      Je joins le code complet de mon fichier, peut-être aurez vous une explication...

      https://cjoint.com/c/ICplymmySR4
      0
    4. thev Messages postés 2005 Date d'inscription   Statut Membre Dernière intervention   721
       
      ça ne fonctionnait pas car vous n'aviez pas affecté à votre case à cocher, la macro : case_change !!
      https://cjoint.com/c/ICuszRBdEqK
      0
    5. Datazoom66 Messages postés 4 Statut Membre
       
      Merci !! ca fonctionne !! encore merci
      0