probleme en manipulant des codenames d'autres classeurs

mister red

XLDnaute Nouveau
Bonsoir à, tous,

j'ai construit une petite appli sur plusieurs classeurs. je ré-écris le code pour que ce soit plus propre. J'ai notamment remplacé les utilisations de names (les noms affichés dans les onglets des feuilles) par des codenames (le nom interne exel... les feuil1/feuil2 qu'on voit sous l'éditeur vb).

Je veux tester la couleur d'un onglet d'un autre classeur que celui d'où je fais le test.

Ca marche quand j'utilise les names dans des worbooks("...")/Sheets ("..;")/ActiveWorkbook/ActiveSheet...
Ca marche si j'utilise des codenames de feuilles du classeur qui contient la macro.
Ca plante à la compil avec des codenames de feuilles d'autres classeurs que celui qui contient la macro.

Quelqu'un aurait-il une piste pour résoudre ce problème ?

Ci-dessous le bout de code incriminé :

Then
ClasseurGraphiques.Activate
If (Feuille1PositionPtfAFSe.Tab.ColorIndex = CouleurImprimerOK) Or _
(Feuille2PositionPtfAFSe.Tab.ColorIndex = CouleurImprimerOK) Or _
(Feuille1PositionProjSimi.Tab.ColorIndex = CouleurImprimerOK) Or _
(Feuille2PositionProjSimi.Tab.ColorIndex = CouleurImprimerOK) Or _
(Feuille1PositionProjetSpecif.Tab.ColorIndex = CouleurImprimerOK) Or _
(Feuille2PositionProjetSpecif.Tab.ColorIndex = CouleurImprimerOK) _
Then
Merci pour toute aide bienvenue.
 
G

Guest

Guest
Re : probleme en manipulant des codenames d'autres classeurs

Bonjour Mister_red,

As-tu enregistrer les classeurs dont tu as changé les codenames avant de lancer la macro qui manipule les feuilles par leur nouveaux noms?

A+
 
Dernière modification par un modérateur:

mister red

XLDnaute Nouveau
Re : probleme en manipulant des codenames d'autres classeurs

Bonjour ledzepfred,
Désolé de ne pas avoir répondu hier soir mais je suis allé me coucher tôt et comme mes fichiers sont gros et que je ne veux aussi ne pas prendre trop de votre temps, j'ai refait un petit exemple qui simule le problème. Cela permettra une fois la réponse trouvée d'avoir un petit exemple didactique à mettre sur le forum.

Il y a 2 fichiers. Dans le fichier "Appelant", charger le fichier "Appelé" en utilisant le bouton parcourir.
Ensuite lancer la macro essai.
Cela plante lorsque j'essaie d'utiliser dans le codename d'une feuille du programme appelé à partir du classeur appelant.
Avez-vous une solution.

Au départ l'objectif est de pouvoir utiliser les codenames internes des feuilles au lieu des names et ne pas générer de bugs si l'utilisateur modifie les noms d'onglets. Et donc avoir un code plus propre... lorsque l'on manipule plusieus classeurs en même temps.

Merci pour toute piste que vous pourrez me donner... sinon je vais repartir pour écrire comme un sagouin...
 

Pièces jointes

  • newReference.zip
    18.6 KB · Affichages: 22

mister red

XLDnaute Nouveau
Re : probleme en manipulant des codenames d'autres classeurs

Bonjour Hasco

Déjà merci pour le dépannage de l'autre fois. j'ai d'ailleurs mis les macros que j'ai créées sur le forum car pouvoir faire de l'assemblage de pdfs de manière automatisée est un vrai gain de temps et c'est comme cela que j'ai vendu ma petite usine excel aux mecs de mon équipe.

Pour répondre à ta question, oui, j'ai fait ça. je viens de répondre à ledzepfred avec un post donnant un exemple simplifié de mon problème mais même là ça merdouille.

@+
 
G

Guest

Guest
Re : probleme en manipulant des codenames d'autres classeurs

Mister_Red,

Maintenant que je vois mieux ce que tu veux faire, à ma connaissance tu ne peux appeler une feuille d'un autre classeur que par sa Propriété WorkSheets qui retourne la collection des feuilles. Donc Workbook("Machin.xls").WorkSheets("FeuilX") ou WorkSheets(index).

L'appel des objets par leur codeName ne peut se faire que dans le classeur dans lequel ils existent.

Un peu comme la propriété ThisWorkbook que tu ne peux appeler que depuis le classeur qui contient la macro.

A+
 

mister red

XLDnaute Nouveau
Re : probleme en manipulant des codenames d'autres classeurs

Il me semble avoir une solution de contournement. Mais résistera-t-elle aux utilisations plus complexes ?

J'ai mis à jour la petite simulation que j'avais postée hier en conséquence.


Il s'agit en fait de créer de nouveaux objets feuilles avec les codenames des feuilles des autres classeurs. A partir de ce moment là on peut récupérer l'info sur les feuilles d'origine...

En tout cas,
Ledzepfred, merci pour m'avoir forcé à faire un petit exemple simplificateur
Hasco, merci pour avoir validé que je ne m'étais pas trompé et qu'il fallait
donc contourner
@+
 

Pièces jointes

  • newReference.1rar.zip
    18.7 KB · Affichages: 19

Discussions similaires

Statistiques des forums

Discussions
312 398
Messages
2 088 076
Membres
103 700
dernier inscrit
amin Saadaoui