J'ai un shape sur une feuille que je copie sur une autre feuille.
Il s'agit d'un groupe d'objet de 3 zones de texte dont le contenu est variable qui me sert de légende à un graphique lui aussi variable.
Mon fichier source génère 14 fichiers différents, avec des données différentes qui donnent des graphiques différents.
Le copy / paste s'exécute donc plusieurs fois dans le code.
Je pense que le problème vient de là car sur le 1er fichier y'a qu'un seul paste, mais plusieurs sur les suivant.
J'ai ajouté
VB:
application.cutcopymode = false
mais cela n'a rien changé.
Le code du copy paste est les suivant :
Code:
Private Sub copy2()
Application.ScreenUpdating = False
Worksheets("X").shapes("W").Copy
Worksheets("Y").Paste Destination:=Worksheets("Y").Range("S8")
Application.CutCopyMode = False
Application.ScreenUpdating = True
Range("C5").Select
End Sub
Y a-t-il un moyen de déterminer le nombre de paste que l'on souhaite ?
Ou un moyen de vider le cache après chaque paste ?
Si vous avez des idées ou que vous avez déjà été confronté à ce problème,
J'ai contourné le problème en supprimant tous les shapes dont le nom est différent de celui que je dois conserver. Ainsi, avant le paste, les paste précédent ne sont plus là.
VB:
dim shp as shape
For Each shp In Worksheets("Y").Shape
If shp.Name <> "XYZ" Then shp.Delete
Next shp
Oui ce n'est pas complètement réglé c'est clair, et je vais encore chercher. Quoique :
Je génère les 14 fichiers à partir du même fichier source. Le fichier source devient le fichier 1 puis de là devient le fichier 2, etc.. Le copy paste en question n'a pas lieu à chaque fois, il y a des conditions liées ; je suppose donc que lorsqu'il a lieu 2x de suite, par exemple dans fichier 3 puis dans le fichier 4, alors dans le fichier 4, j'ai 2x le résultat du paste.
Du coup, nettoyer la destination avant chaque génération de fichier est peut-être la solution.