Bonsoir Laurent
Je vais essayer de t’expliquer :
Lorsque tu as lancé l’enregistreur de macro, tu as créé la forme (addshape) donc, tu as les parametres complets (forme, position, taille) inscrits dans ta macro. Pour t’en convaincre consultes l’aide microsoft
Une fois que ta forme est construite Tonton VBA lui donne un nom et un numéro « autoshape 16 » je ne sais pas comment il fait ni comment les retrouver.
Lorsque j’ai lancé l’enregistreur de macros,
1/j’ai cliqué sur la forme existante (le smileyface) donc je ne l’ai pas créé (donc pas de addshape) et son numéro s’est inscrit dans la macro
2/ j’ai cliqué sur copier
3 : j’ai sélectionné une cellule de destination (au hasard C6)
4/ j’ai cliqué sur coller
les 2 dernières de la macro étaient donc :
range(« C6 »). Select
activesheet. Paste
au besoin, refais cette manip pour bien piger.
Maintenant, il faut employer VBA car la destination est variable et tu ne peux pas le faire avec l’enregistreur
Je vais donc créer une variable (cible)
Qui sera affectée de l’adresse de la cellule active (ma destination : C6,B4…)
Cible=activecell.address
Address renvoit du texte donc cible est dimensionné en string (string= chaine (de caractères) comme quoi les américains peuvent être des fois égrillards) Dim cible as string
J’arr^te de délirer…
Dans range (cible) il y a la valeur de la variable (C6,B4…) on a donc par exemple range(« C6 »)
Et il n’y a plus qu’à coller
Tu peux suivre le procédé pas à pas avec le débogueur (touche F8) et tu peux suivre la valeur de cible en installant un espion (débog…| ajouter un espion)
Bonne soirée
Michel