[EXCEL] copier une feuille sans changer les liaisons

Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
- - Dernière réponse : 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!
Afficher la suite 

2 réponses

Messages postés
53
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
19 avril 2012
1
0
Merci
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"
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
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?