Problème de macro et checkbox

Bonjour à toutes et à tous,

Pratiquant un peu le VBA, j'ai eu une demande au niveau professionnel afin d'uniformiser un fichier de contrôle de dossiers. Afin de simplifier l'utilisation, j'ai simplifier les procédures via VBA. Néanmoins, je bloque depuis plusieurs jours sur une fonction ou une possibilité. J'ai essayé beaucoup de choses, mais sans succès.

Pour être clair, j'ai un userform avec plusieurs checkbox. Pour chaque dossiers contrôlés, ces checkbox de contrôle remplissent en validant une ligne d'une feuille excel (afin d'en faire un TCD après). Celles-ci remplissent les cellules de VRAI ou FAUX. Je souhaiterai que mes checkbox (qui ont des labels et caption toutes différentes et obligatoires) si elles sont cochées, ne reportent pas un VRAI ou FAUX mais une valeur.

Me disant que c'est pas possible (après plusieurs essais infructueux), j'ai essayé dans mon remplissage automatique qu'en bout de ligne la dernière cellule incorpore la fonction CountIf, mais malgré tout mes essais, la fonction ou procédure n'est jamais reconnue.

Afin que cela soit plus parlant, je vous joint le projet. Mon problème, ou ma question, se situe pour le USERFORM ECOUTE et le remplissage de la feuille masquée NOTE_ECOUTE. J'ai un bouton valider ecoute qui remplit la feuille bdd_ecoute, et pour le moment un bouton command en bas pour tester le remplissage NOTE_ECOUTE.

Quelqu'un pourrait il m'aider à résoudre mon problème ?

Merci d'avance.

29excelpratique.xlsm (344.68 Ko)

bonsoir,

pas trop compris...

La proc Test : mdr ! (Si j'avais pas lu un peu le reste avant, je serais sorti en courant !)

Je souhaiterai que mes checkbox ne reportent pas un VRAI ou FAUX mais une valeur.

Les checkbox ne reportent rien du tout : c'est toi qui reporte n'importe quoi !

Si tu veux des 1 ou 0 (par exemple) au lieu de VRAI/FAUX tu écris :

...
    Range("G" & L).Value = IIf(Ecoute.CheckBox1, 1, 0)
    Range("H" & L).Value = IIf(Ecoute.CheckBox2, 1, 0)
    Range("I" & L).Value = IIf(Ecoute.CheckBox3, 1, 0)
...

après ça les valeurs, le countif, je n'ai rien vu que je puisse corriger : Tu améliores un peu afin que je puisse taper dans le dur parce que pour l'instant il me faut une boule de cristal...

A+

Bonjour,

Merci de votre aide. Je me suis en effet peut être mal exprimé, tout en sachant aussi que mes procédures sont loin d'êtres parfaites, étant donné que je débutes dans ce domaine, mais si j'ai pu en comprendre les principes.

A toute fin utile, sur la ligne AJ, comment est il possible d'inclure une formule somme, là aussi, je l'avoue, je galère un peu.

Merci d'avance.

Dois-je comprendre que tu es amené à bricoler sur un truc qui n'est pas de ton cru ?

(inclure une formule somme) en VBA !

Je m'amuserai pas à ça :

Mets donc une variable dans ta Sub dans laquelle tu fais le total de tes VRAI et tu inscris directement le résultat "en dur" en AJ

Sinon tu vas avoir effectivement un problème pour formuler vu que ton N° de ligne est variabilisée.

Je vais "re-regarder" mais ça me parait un peu pourri comme idée !

[EDIT] Finalement si. J'ai trouvé rapidement : Le N° de ligne n'intervient pas dans cette formulation.

Range("AJ" & L).FormulaR1C1 = "=SUM(RC[-29]:RC[-6])"

...mais c'est quand même une idée pourrie. Puisque tu es dans VBA autant le faire travailler : Inutile de coller une formule !

A+

Merci encore pour vos réponses.

Non, tout est bien de mon cru. D'où la multiplication de procédures, j'aurai peut être pu faire plus simple, il est vrai...

Bref, en fait le USERFORM écoute doit me sortir une note de conformité en pourcentage, où chaque checkbox coché ou non ajoute un nombre pour arriver à 100 %. Voilà le problème de base en fait, et c'est pour ça que je posais la question pour l'addition en bout de chaîne. Et concernant l'idée pourrie^^, j'avoue que là je me demande ce que je pourrais mettre en place alors comme meilleure procédure !

En tout cas merci pour les retours et le temps consacré. Je vais essayer de continuer et essayer de simplifier mes procédures dans au fur et à mesure. Je regarde et apprends beaucoup des post que je peux trouver ici.

C'est juste l'idée de mettre une formule qui me semble pourrie : Autant sommer directement tous les CheckBox VRAI. Inutile d'ajouter des formules inutiles...

Sinon sur le reste de la prog je n'ai pas de commentaires particuliers (hormis la Sub Test : un peu ...surprenante !)

Bon a.m.

Je reviens vers toi, car j'ai fais des tests et je galère un peu. Pas sur les solutions apportées, qui elles sont correctes à tout point de vue (on voit le pro qui maîtrise), mais sur l'idée générale et celle soumise.

Comment pourrais je supprimer la procédure test et l'imbriquer dans ma procédure sous la commande "valider écoute", et qu'elle me calcule donc le nombre de 1 ou les "vrai" en fonction des checkbox cochées ? merci

bonjour,.

Je t'ai remplacé ta procédure test par une sub intégrée à

Sub valider_écoute_Click

Cependant comme cette procédure est complètement incompréhensible pour moi, j'ai complètement viré le transfert dans bdd !

Je ne me suis occupé que du transfert dans NOTE-ECOUTE

pour le num_ecoute j'ai pas trop su non plus... j'ai reporté le N° cle, mébon toussa me semble ...pas très clair.

A toi de voir comment tu veux remplir ta bdd.

A+

30excelpratique-vg.xlsm (305.03 Ko)

Encore une fois merci beaucoup, tu as su simplifier ma procédure bien trop laborieuse. Effectivement tout est un peu "lourd" dans les procédures, j'ai encore à progresser énormément.

Merci beaucoup pour le temps consacré à ce "projet".

Bonne fin d'après midi

Rechercher des sujets similaires à "probleme macro checkbox"