nicolase78
XLDnaute Junior
Bonjour à tous,
J'ai un classeur Excel qui contient des onglets Commande.
Plus la commande est importante, plus le nombre d'onglets Commande est important. On obtient donc dans un classeur un nombre variable d'onglet de la manière suivante :
- Commande1
- Commande2
- Commande3
- ...
Avec une petite fonction j'arrive à déterminer le nombre d'onglets commande, ici 3.
Seulement, je sais passer un Array dans mon autre classeur (nommé ici fname) mais de manière fixe, par exemple si je sais que j'ai 3 onglets commande je ferais de la manière suivante :
Je sais contourner le problème et faire quelque chose de pas très propre avec une boucle qui parcourt les feuilles et qui copie les bonnes feuilles.
Mais le problème c'est qu'avec cette solution "sale", les formules de la feuille Commande1 font référence aux feuilles de l'ancien classeur, alors qu'avec un array on évite ces problèmes, les formules feraient bien référence aux bons onglets Commande collés.
En fait la question simplifiée c'est : comment faire varier le nombre d'éléments dans un Array je pense..., si c'est possible !
J'espère avoir été clair, je peux mettre un classeur d'exemple bien que je pense que dans ce cas présent cela ne soit pas utile.
Merci pour toutes fois où vous m'avez aider d'ailleurs.
Bonne journée.
J'ai un classeur Excel qui contient des onglets Commande.
Plus la commande est importante, plus le nombre d'onglets Commande est important. On obtient donc dans un classeur un nombre variable d'onglet de la manière suivante :
- Commande1
- Commande2
- Commande3
- ...
Avec une petite fonction j'arrive à déterminer le nombre d'onglets commande, ici 3.
Code:
CompteurOnglet = 0
For Each Sh In Sheets
If Left(Sh.Name, 8) = "Commande" Then compteurOnglet = compteurOnglet + 1
Next Sh
Seulement, je sais passer un Array dans mon autre classeur (nommé ici fname) mais de manière fixe, par exemple si je sais que j'ai 3 onglets commande je ferais de la manière suivante :
Code:
Sheets(Array("Commande1", "Commande2","Commande3")).Copy After:=Workbooks(fname & ".xlsx").Sheets(1)
Je sais contourner le problème et faire quelque chose de pas très propre avec une boucle qui parcourt les feuilles et qui copie les bonnes feuilles.
Mais le problème c'est qu'avec cette solution "sale", les formules de la feuille Commande1 font référence aux feuilles de l'ancien classeur, alors qu'avec un array on évite ces problèmes, les formules feraient bien référence aux bons onglets Commande collés.
En fait la question simplifiée c'est : comment faire varier le nombre d'éléments dans un Array je pense..., si c'est possible !
J'espère avoir été clair, je peux mettre un classeur d'exemple bien que je pense que dans ce cas présent cela ne soit pas utile.
Merci pour toutes fois où vous m'avez aider d'ailleurs.
Bonne journée.