VBA : activer une feuille dont le nom est la valeur d'une cellule

titi_glt

XLDnaute Nouveau
Bonjour à tous,

Je suis débutante en VBA et je rencontre un problème avec un code.

Voilà, à partir d'une feuille source, je créé deux feuilles, une pour l'année en cours et l'une pour l'année suivante, dans lesquelles des données seront copiées. Je voudrais activer la feuille de l'année en cours, non pas par son nom (par exemple Sheets("2012").Activate) mais par la valeur de la cellule "A1" (pour que, l'année prochaine, ce soit la feuille "2013" qui soit activée, sans que j'ai à changer le code de la macro). Après quelques recherches sur internet j'ai trouvé ce code :

Code:
Sheets(Sheets("Feuil1").Range("A1").Value).Activate

Cependant, quand je le teste, j'ai une erreur 9 "l'indice n'appartient pas à la sélection". Je ne sais plus quoi faire, c'est pourquoi je me tourne vers vous pour un peu d'aide. Vous trouverez en pièce jointe un fichier exemple qui sera un peu plus clair que mon laïus.

Je vous remercie d'avance pour les réponses que vous pourrez m'apporter.
 

Pièces jointes

  • Sélectiontest.xlsm
    13.6 KB · Affichages: 205

Grand Chaman Excel

XLDnaute Impliqué
Re : VBA : activer une feuille dont le nom est la valeur d'une cellule

Bonjour titi_glt et bienvenue sur le forum,

Le problème est que le nom de ta feuille est numérique (2012). Avec ton code, c'est comme si tu voulais afficher le 2012e onglet de ton classeur!

Pour que ça fonctionne, utilise ceci à la place :

Code:
Sheets(Sheets("Feuil1").Range("A1").Text).Activate

En prenant .Text au lieu de .Value, tu pointes alors sur l'onglet porte le nom "2012" au lieu du 2012e onglet...

A+
 

titi_glt

XLDnaute Nouveau
Re : VBA : activer une feuille dont le nom est la valeur d'une cellule

Merci beaucoup pour cette solution, ça marche nickel ;) Et merci pour la petite explication, il faut que je me la note quelque part, pour être sure de ne pas oublier.

En tout cas, merci encore pour la rapidité et la solution, c'est très gentil :)
 

Discussions similaires