none
Macro applicable sur un nombre quelconque de feuillets RRS feed

  • Question

  • Bonjour.

     

    J'ai une application Excel qui me génère un nombre de feuillets pouvant aller de 1 à 120 (en théorie, je ne suis même pas sur qu'Excel gère autant de feuillets). J'ai créé une macro personelle qui s'occupe de moyenner des séries de valeurs et d'en faire un tableau. Rien de bien compliqué en somme. Mais la macro plante si le fichier Excel n'a pas le même nombre de feuillets que celui sur lequel j'ai créé la macro.

    Dans le code en Basic, J'ai une séquence

     

    Sheets. Array ("1","2").Select

    Sheets1.Activate

     

    J'avais créé la macro sur un fichier à 2 feuillets mais j'avais fait un clic droit + sélectionner tous les onglets lors de son enregistrement et manifestement ça ne s'est pas traduit comme ça en code. J'aurais eu 4 feuillets, m'aurait'il écrit Array("1", "2", "3", "4")?

     

    Comme je n'ai pas envie de créer 120 macro, une pour chaque nombre de feuillets possible, je me demandais s'il existait une fonction pour appliquer une macro sur tous les feuillets d'un classeur. J'ai cherché dans les classes de Basic XlFillWith, FillAcrossSheets ou Range mais ça ne m'a pas beaucoup aidé.

     

    Sinon, il y a toujours la solution de créer une seule macro qui fonctionne pour 120 feuillets et qui va planter dès qu'elle arrive sur un feuillet qui n'existe pas, d'accord ça s'appliquera sur tous les feuillets du fichier avant de planter, mais ce n'est pas très élégant...

     

    Voici donc ma question, quel est le moyen/la fonction/le morceau de code/l'astuce qui me permettrait de créer une macro qui s'applique sur un nombre quelconque de feuillets et sans planter.

     

    Je vous remercie d'avance de vos propositions. Si possible avec beaucoup d'explications parce que je ne suis pas une flèche en programation.

    mardi 12 juin 2007 07:28