[VBA] Sélection d'un onglet

Résolu/Fermé
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 - 9 avril 2006 à 01:52
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 - 9 avril 2006 à 16:39
Bonjour,

Voici mon problème sous VBA. Je fais sélectionner à un utilisateur le nom d'une commune de son choix dans une liste. Je voudrais ensuite afficher l'onglet correspondant à ce choix mais mes onglets sont nommés avec les codes postaux.

J'ai réussi à obtenir la variable CPOST qui contient bien le code postal de la commune sélectionnée par l'utilisateur mais la commande Sheets(CPOST).Select génère une erreur.
Supposons que le code postal en question soit 75001, la commande Sheets("75001").Select fonctionne mais pas la commande Sheets(CPOST).Select même si CPOST est bien égal à 75001.

Comment doit-on rédiger ce type de commande ?

Merci.

Netman

2 réponses

netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 1
9 avril 2006 à 16:39
Bonjour et merci beaucoup de votre réponse.

La définition de la variable CPOST en tant que chaîne (Dim CPOST as String) a permis de résoudre mon problème.

Netman
3
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
9 avril 2006 à 08:44
Salut,

Sheets("75001").Select fonctionne mais pas la commande Sheets(CPOST).Select même si CPOST est bien égal à 75001.

CPOST = 75001

Dans ce cas si 75001 est consideré comme un nombre ça ne marche pas puisque les feuilles peuvent être aussi appellée par leur index et je ne crois pas que tu as 75001 feuilles.

Donc quand tu fais Sheets(CPOST) en fait c'est la feuille numéro 75001 que ta macro cherche et pas Sheets("75001") qui est le nom de la feuille.
Il faut s'assurer que la CPOST est une chaîne sinon il faut la convertire.


Solution 1:
Dim CPOST as String ' on s'assure que le contenu est une chaîne pas un numéro
CPOST = 75001
Sheets(CPOST).Select
Solution 2

Dim CPOST 'Si la variable CP est autre chose que String
CPOST = 75001
Sheets(cstr(CPOST)).Select
2