Pb de recup var vba

Résolu
Bonjour,

voila mon soucis, j'ai une interface sur laquelle je veux qu'il apparaisse certaines info en fonction d'un tableau de paramètres.
je m'explique, j'ai un tableau dans lequel se trouve les valeur 0 ou 1. si 1 alors je recupère le nom de mon checkbox qui est dans une autre case, je la met dans une variable pour ensuite faire en sorte que le checkbox soit invisible sur le userform (generation)

mais ca marche pas car forcement j'ai une erreur de variable. voici mon code :

ligd = 4
cold = 3

While ligd <> 17
If Workbooks(Module_auto_BE.nom_classeur).Sheets("paramètre génération").Cells(ligd, cold).Value = "0" Then
Var = Workbooks(Module_auto_BE.nom_classeur).Sheets("paramètre génération").Cells(ligd, cold - 2).Value
generation.Var.Visible = False
End If
ligd = ligd + 1
Wend

est ce quelqu'un pourrait m'éclaircir

merci
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. kikou toi ... t'éclaircir ??? ben pourquoi t'aimes pas ton bronzage ??? lol

    Bon à première vue, sans être entré dans le détail, tu récupères en fait un string dans var. Et ce string , n'est pas un objet (ici un contrôle checkbox), tu dois avoir une erreur de compilation genre "méthode ou objet introuvable" ...

    tu devais pas partir de bonne heure toi ?

    ;o)

    polux
    1. tiens, j'ai bidouillé un petit truc pour l'exemple : https://www.cjoint.com/?fjrul0rZgO

      ça ne répond peut être pas à ta question, mais ça peut t'éclairer.

      Si le lien est perdu, fais moi signe, je le repasserai mardi.

      bon week, bon soleil et tout et tout

      ;o)

      polux
      1. coucou !!!

        oui ca répond bien à ma question !!! j'ai pas encore testé car ce week je fais rien mais je te tiens au courant demain ou mardi !

        merci pour ton aide
    2. coucou !!

      alors je viens de tester, ca me créer un nouveau checkbox, mais en fait faudrait que j'arrive à griser les checkbox déjà existant. c'est possible ?

      je vais essayer de bidouiller ton code pour que ca puisse fonctionner !

      @+
      1. Kikou,

        Oui bien sûr que c'est possible. Si tu les as créés de façon dynamique il faut appeler l'objet avec un set :

        With UserForm1
        Dim chkBox As Object
           Set chkBox = .Controls("lenomdemacheckbox")
           If chkBox.Value = False then
              chkBox.Enabled = False
           Else
             chkBox.Enabled = True
           End If
           Set chkBox = Nothing
        End With


        Si tu les as crées "manuellement" sur ta UF, il faut le faire par la propiété ou bien en parcourant la collection d'objets sur la UF avec For Each ... Next

        Dim cb as Control
        For Each cb In UserForm1.Controls
           If TypeOf cb Is CheckBox Then
               cb.Enabled = False
           End If
        Next 

        Ou un truc comme ça :o)), je ne sais plus trop la syntaxe exacte (heuuu je sais pas si ça marche en vba ...mdr)

        Je t'aide pas trop là.

        Fais moi signe sinon, je regarderai de plus près.

        ;o)

        Polux
    3. j'ai essayé mais le pb vient de plus haut car le nom du chekcbox est récup d'un tableau excel "de paramètres".
      donc pour récupérer le nom du checkbox correctement pour lui appliquer la propriété visible = false n'est pas évidente.
      1. merci à vous trois !!

        finallement je me suis pas pris la tête je considère que mes paramètres sont figés sur une feuille excel dans un tableau et en fonction de ca j'affiche ou non mon contrôle, c'est pas terrible comme code mais ca marche. j'améliorerai plus tard !

        à la prochaine merci pour votre aide !