[VBA] Sélection d'un onglet
Résolu
netman44
Messages postés
65
Statut
Membre
-
netman44 Messages postés 65 Statut Membre -
netman44 Messages postés 65 Statut Membre -
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
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
A voir également:
- [VBA] Sélection d'un onglet
- Rouvrir onglet fermé chrome - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Excel compter cellule couleur sans vba - Guide
- Edge nouvel onglet google ✓ - Forum Microsoft Edge / Internet Explorer
- Groupe d'onglet chrome - Guide
2 réponses
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
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
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:
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).SelectSolution 2
Dim CPOST 'Si la variable CP est autre chose que String CPOST = 75001 Sheets(cstr(CPOST)).Select