[EXCEL] copier une feuille sans changer les liaisons

didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007 - 8 sept. 2005 à 14:50
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007 - 8 sept. 2005 à 15:33
Bonjour à tous!

j'ai un projet dans lequel je dois ajouter à un classeur existant 2
autres feuilles ("Modèle" et "Résultat") issus d'un classeur tierce.

Le classeur "Résultat" utilise un graphique lié aux données issues de "Modèle".



Une fois mes feuilles copiées dans le nouveau classeur par un :
objWorkbookFeuilleType.Worksheets("Modèle").Copy
after:=objWorkbookFinal.Worksheets(1)

et

objWorkbookFeuilleType.Worksheets("Résultat").Copy after:=objWorkbookFinal.Worksheets(2)



J'ai un problème avec mon graphique dans "Résultat" : celui-ci ne fait
pas référence à la feuille excel copiée, mais à la feuille d'origine
(j'obtiens par exemple, pour l'axe des absicces comme source de donnée
='http://.../[9FEUCPTLEX_exc.xls]Modèle'!$E$3:$E$4 après l'exécution de
la macro). J'aimerais juste avoir un ='Modèle'!$E$3:$E$4, c'est à dire
qu'il ne me change pas la source.



Est-ce possible?

merci pour toute aide!

2 réponses

cs_ynizon Messages postés 53 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 19 avril 2012 1
8 sept. 2005 à 15:07
Quand tu souhaites faire du VBA, le
mieux c est de lancer l enregistreur de macro. Tu fais tes commandes,
apres tu fais STop et tu regardes le code qu'il a généré dans le module.
-

Ca te permettra de savoir comment modifier la plage de cellule qui fait
reference a ton tableau. Maintenant revenons a ton exemple:

Remplace

objWorkbookFeuilleType.Worksheets("Résultat").Copy after:=objWorkbookFinal.Worksheets(2)

par

dim wsResultat as worksheet

Set wsResultat=objWorkbookFeuilleType.Worksheets("Résultat").Copy after:=objWorkbookFinal.Worksheets(2)



Imaginons que ca soit la propriété sourcedata qui fait reference a tes cellules, il faudrait alors ajouter:

objResultat.SourceData="Modèle'!$E$3:$E$4"
0
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
8 sept. 2005 à 15:33
Merci de ta réponse. J'utilise très régulièrement l'enregistreur de macro pour m'aider, mais là, le problème est autre.

En fait, j'ai omis ce détail (mais qui a son importance) : j'ai
illustré mon problème en parlant d'un graphique, mais en fait il peut y
avoir n'importe quel type de données sur la feuille "Résultat" faisant
référence à ma feuille "Modèle" : cellules et/ou un plusieurs
graphiques (je n'ai donc par conséquent, pas leur nom!)

Y a t'il un moyen de récupérer toutes les références à un source de
données utilisées dans une feuille afin de les modifier par leur code?
0
Rejoignez-nous