Bonsoir majormadj,
attention : il y a une petite contradiction dans ton énoncé : d'une part tu écris que c'est pour les feuilles 12 à 40 ; d'autre part, tu veux que ce soit selon le CodeName de la feuille ; pour le 1er cas, on aurait pu utiliser l'index de la feuille Worksheets(i)
dans une boucle i de 12 à 40 ; pour le 2ème cas, je te propose le fichier Excel ci-dessous (solution qui est indépendante de la position d'une des feuilles dans le classeur : c'est bien selon le CodeName et pas la position).
sauf si le CodeName de tes feuilles est top secret, tu aurais pu l'indiquer, ce qui m'aurais permis de mettre la liste exacte de ces CodeName dans le code VBA ; donc à défaut, j'en ai inventé trois.
en fait, tu verras 2 solutions possibles dans le code VBA ➯ 2 macros Essai1() et Essai2() ; à toi de choisir la solution qui te convient le mieux, mais dans les 2 cas, pour ton vrai classeur, tu devras modifier le code pour indiquer quel est le CodeName de chacune de tes feuilles 12 à 40 (mon fichier exemple est pour 3 feuilles seulement, en plus d'une 1ère feuille qui doit exister forcément).
en effet, si on masque toutes les feuilles ayant un CodeName qui correspond à celui de tes feuilles 12 à 40, il faut d'abord sélectionner une autre feuille (ici la 1ère du classeur) avant de masquer les feuilles ; ceci afin que la feuille qui va être masquée ne soit pas celle qui est active ! (sinon, ce serait comme de scier la branche sur laquelle on est assis ! )
si besoin, tu peux demander une adaptation.
merci de me donner ton avis.
dhany