copier coller avec vba

L

laurent

Guest
Bonjour à tous

Merci de votre aide, je n'ai pas était très clair dans le sujet
("vba coller-->copier")


J'ai refait mon exemple je pense qu'il est plus clair

Salut

Laurent

@+
 
L

laurent

Guest
Salut Michel
Et merci ça marche

mais étant un débutant je ne comprend pas ta formule pourrais tu me l'expliquer

s'il te plait

Car tu as changé

ActiveSheet.Shapes.AddShape(msoShapeSmileyFace, 16.5, 223.5, 17.25, 17.25). _
Select

par

Dim cible As String
cible = ActiveCell.Address

ActiveSheet.Shapes("AutoShape 16").Select
Selection.Copy
Range(cible).Select
ActiveSheet.Paste

merci
@+
laurent
 
M

Michel_M

Guest
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
 

Discussions similaires

Réponses
56
Affichages
2 K
Réponses
6
Affichages
562

Statistiques des forums

Discussions
314 017
Messages
2 104 582
Membres
109 083
dernier inscrit
Stef06