aller sur une feuille d'un fichier ayant le même nom qu'un onglet d'un 1er classeur

jeanmomo

XLDnaute Nouveau
Bonjour à tous,

Je coince sur un bout de code pour effectuer une manipulation, je m'explique :

J'ai un fichier recap.xls qui se trouve dans un même dossier que tout un tas d'autres classeurs (portant des noms totalement différents, disons A, B, C, D, etc).

Au sein de fichier recap.xls, j'ai beaucoup d'onglets nommés de manière précise : AA0001 A1, AA0001 K2, AA0001 N1, RD0001 A1, RD0001 K2, RD0001 N1, etc...

Ce fichier recap.xls contient également une macro, permettrant d'ouvrir un à un les autres classeurs du dossier, afin d'y effectuer les mêmes opérations.

Jusque là tout va bien....

Cependant, maintenant je souhaite que sur le classeur ouvert (classeur A pour commencer) par la macro, que le code fasse que l'onglet AA0001 A1 (déjà créé par macro) soit l'onglet actif , puis que sur base du nom de cet onglet déjà inscrit dans la cellule B1 (si besoin), le code aille sur sur l'onglet AA0001 A1 du fichier recap.xls et copie-colle les infos sur l'onglet AA0001 A1 du classeur A.



En gros, pour chaque classeur A,B,C je souhaite "compléter" 3 onglets avec des infos venant du classeur recap.xls, le nom de la feuille du classeur recap.xls d'où provenant les infos étant déjà un nom de ces classeurs A,B,C (avec aussi le nom dans la cellule B1 de ces trois onglets).


J'espère avoir été suffisament précis pour que vous puissiez me venir en aide.

Merci par avance,
Cordialement,
J-M
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : aller sur une feuille d'un fichier ayant le même nom qu'un onglet d'un 1er class

Bonjour Jeanmomo, bonjour le forum,

C'est pas vraiment clair mais on devrait y arriver avec un code du genre de celui-ci :

Code:
Sub Macro1()
Dim C1 As Workbook 'déclare la variable C1 (Classeur1)
Dim C2 As Workbook 'déclare la variable C2 (Classeur2)
Dim O1 As Object 'déclare la variable O1 (Onglet du classeur 1)
Dim O2 As Object 'déclare la variable O2 (Onglet du classeur 2)

Set C1 = Workbooks("recap.xls") 'ou Set C1 = ThisWorkbbok (si c'est le cas)
'code pour ouvrir le classeur...
Set C2 = ActiveWorkbook
'là je suis pas sûr car tes explication sont pas très claires...
'définit l'onglet du classeur C2 en récupérant la valeur de de la cellule B1 de l'onglet actif du fichier "recap.xls"
Set O2 = C2.Sheets(C1.ActiveSheet.Range("B1").Value)
'définit l'onglet du classeur C1 en récupérant la valeur de de la cellule B1 de l'onglet actif du fichier "recap.xls"
Set O1 = C1.Sheets(C1.ActiveSheet.Range("B1").Value)
'si le classeur C1 est actif
O1.Select 'va attendre cet onglet
'si le classeur C2 est actif
O2.Select 'va attendre cet onglet (du même nom)
End Sub
 

jeanmomo

XLDnaute Nouveau
Re : aller sur une feuille d'un fichier ayant le même nom qu'un onglet d'un 1er class

Bonjour Robert,

Merci de m'être venu en aide si rapidement hier.
J'ai essayé d'adapter tes bouts de code, mais j'obtenais des messages d'erreurs...
Pendant que je te préparais une réponse hier, j'ai eu une nouvelle idée et je me suis lance plein pot dedans.

J'ai trouvé un moyen alternative, certes moins proper et moins rapide, mais qui à le mérite de fonctionner. En gros je copie le nom de l'onglet du classeur 1 dans une feuille vide du classeur 2, puis sur base de cette copie dans le classeur 2, je suis parvenu via un : ActiveWorkbook.Worksheets(ActiveSheet.Range("A1").Value).Activate
à obtenir ce que je voulais.


Maintenant, je viens de découvrir un potentiel problème dans un autre bout de code :

J'ouvre un classeur, et je veux qu'il sélectionne la feuille : "ABCDEF" (exemple au hasard). Jusque là, pas de problème, mais je me suis rendu compte que parmi la multitude de fichiers ouverts par la macro, certains n'ont pas de feuille nommée "ABCDEF", mais "ABCDEF "(avec un espace en plus).

J'ai cherché pendant plus d'une heure sur internet, mais je n'ai pas trouvé (ou pas su adapter) un code qui fasse que :
- si "ABCDEF" existe, alors il va dessus;
- sinon il va sur "ABCDEF ".


Aurais-tu une idée ?

Encore merci pour ton aide,
Cordialement,
J-M
 

Discussions similaires

Statistiques des forums

Discussions
311 740
Messages
2 082 049
Membres
101 882
dernier inscrit
XaK_