Créer et assigner une macro aux boutons créés dynamiquement

Bonjour,

Je poste ce sujet dans l'espoir de trouver de l'aide. Je galère pas mal comme je débute en VBA, et mon code est certainement optimisable.

J'ai un fichier (ci-joint) qui demande (sous forme de boutons radio OUI/NON) à l'utilisateur si des données sont à rentrer:

Ce qui est déjà fonctionnel :

  1. si l'utilisateur répond "NON" : cela grise toute la colonne
  2. si l'utilisateur répond "OUI" : cela crée en dessous une partie d'un tableau + d'autres boutons radio qui sont également créés en dessous de chaque question.

Ce que je souhaiterais faire :

  1. si l'utilisateur clique sur "OUI" par exemple à la question "Impact ?" => Cela ajoute une nouvelle ligne vide en dessous
  2. si l'utilisateur clique sur "NON" (toujours à la question "Impact ?"= Cela grise le fond de la cellule + le fond du bouton

Evidement, comme ces boutons sont créés dynamiquement, je ne peux pas simplement "double cliquer" sur le bouton radio "OUI" pour lui indiquer quoi faire. Il faut savoir qu'il y aura énormément de colonne différente avec la question de départ "A-t-on des données sur la période demandée?" ainsi que d'autres bloques de tableau avec les questions secondaires. (Impact, Risques...)

Peut-être que mes boutons radio ne sont pas générés de la bonne façon, il faudrait peut-être utiliser des variables pour les nommer, les placer correctement etc...

Questions bonus :

  1. Comment puis-je faire en VBA pour que mes boutons radios puissent se déplacer et se redimensionner en même temps que les cellules ? Je peux le faire directement via Clique droit > Format de l'objet > Onglet Propriétés mais impossible d'utiliser cette solution car mes boutons sont créés dynamiquement. Cette propriété peut-elle être ajoutée au moment de la création du bouton ?
  2. Comment puis-je faire pour afficher un bouton "+" à droite de la colonne "DONNNE" qui aura pourra action de faire la même chose que lorsque l'utilisateur répond "OUI" à la première question "A-t-on des données sur la période demandée?". Il faudrait que ça rajoute le même tableau mais en dessous du premier en sautant une ligne. Réafficher le bouton "+" sur ce dernier tableau, toujours à droite de la colonne "DONNNE". Et si possible, supprimer le bouton "+" à chaque fois sur le tableau précédent.

Je suis conscient que mon problème est assez compliqué, peut-être qu'il y a des solutions plus facile et plus simple à mettre en place mais je n'ai pas les compétences pour ça.

Je vous remercie par avance :)

Flolm

Voici le fichier en question :

4test.xlsm (25.71 Ko)

Bonjour

Tu compliques inutilement et alourdis le classeur en ajoutant des activex partout

Des cellules cochées décochées par double clic ne seraient-elles pas suffisantes ?

C'est léger, facile à gérer...

En général pour ce type de questionnaire ou prépare tous les cas et on masque ou démasque les lignes en fonctions des réponses

Cela permet aussi un dépouillement à postériori

Construire avec des Activex à la volée parait très lourd

Bonjour 78chris,

Tout d'abord merci pour ta réponse. Oui c'est vrai que je me rends compte que je complique énormément la création et la gestion de ce fichier.

Quand tu dis, des cellules cochées et décochées, je ne comprends pas bien, tu parles de checkbox ? Pourrais-tu me donner un exemple ?

RE

Non on peut par double clic avec un code VBA très simple et des plages nommées, mettre ou retirer un caractère en forme de coche dans une cellule.

Les plages nommées servent à gérer le cas une case unique sur n : quand on double clic sur oui puis sur non seul non reste

Rechercher des sujets similaires à "creer assigner macro boutons crees dynamiquement"