[VBA] Sélection d'un onglet

Résolu
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

  1. 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
    1. Modérateur
      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