Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Afficher feuille classeur par Liste déroulante

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zeltron24

XLDnaute Impliqué
Bonsoir,

Je souhaiterai si cela est possible via une liste déroulante sélectionner une feuille et y accéder.
En clair, j'ai 12 feuilles (1 par mois) une feuille nommée "Menu" me sert à circuler dans le classeur. Avec une liste déroulante comprenant les noms de mes douzes feuilles (Jan,Fév,Mar......) je désirerai sélectionner par ex: Mar et cela m'afficherai la feuille correspondante.
Est ce possible ? je vous remercie d'avance pour votre aide.

Zeltron24
 
Re : Afficher feuille classeur par Liste déroulante

Bonsoir à tous,

Un petit exemple parmi tant d'autres possibles :


Dans ton UserForm (USFmensuel par ex) , tu saisies le code suivant dans la macro d'initialisation du formulaire :

Soit ListeMois = une ListBox

'-- Exemple de code
Sub USFmensuel.Initialize
With ListeMois
.AddItem "Janvier"
.AddItem "Février"
'(Tu continues ainsi toute l'année ...)

.AddItem "Décembre"
End With
End Sub
'----fin de la macro d'initialisation


Tu crées alors la macro qui déclenchera l'accès à la feuille sélectionnée
Imaginons que ta feuille "Menu" soit la 1ère et que tes mois suivent dans l'ordre chronologique (Janvier = feuille 2, Fév = 3)

'--Code
Sub ListeMois.Change
Dim i as Byte '(Déclaration variable récupérant l'index sélectionné)
i = USFmensuel.ListeMois.Index
ActiveWorkbook.Sheets(i + 2).select
End Sub
'--fin de code

Explication : dans la ListBox, janvier = 0 (la 1ère occurence d'une liste porte le numéro 0, alors qu'il est la 2ème feuille de ton classeur, donc on ajoute 2 à la valeur de l'index

Evidemment, évites ensuite de changer l'ordre des page.

Tu peux assurer le coup de la manière suivante mais le code est plus long :

'--Code
Sub ListeMois.Change
Dim i as Byte '(Déclaration variable récupérant l'index sélectionné)
i = USFmensuel.ListeMois.Index
Select case i
Case 0
ActiveWorkbook.Sheets("Janvier").select
Case 1
ActiveWorkbook.Sheets("Février").select
(Continues ainsi jusqu'en Décembre en décalant jusqu'à Case 10)
End Select

End Sub
'--fin de code

Dans cette variante tu peux alors changer l'ordre des pages

Bonne soirée
Kotov
 
Re : Afficher feuille classeur par Liste déroulante

Excuse moi je me suis trompé, je m'en aperçois à la relecture

Remplace partout :
i = USFmensuel.ListeMois.Index
par
i = USFmensuel.ListeMois.ListIndex


Bye
Kotov
 
Re : Afficher feuille classeur par Liste déroulante

Bonsoir Zeltron24, kotov, le forum

une solution très pratique dont pesrsonnellement je ne sais plus me passer, est d'avoir la liste des feuilles du classeur actif par un simple clic droit grâce à la macro complémentaire que l'on doit je crois à Zon ( installation dans le menu Outils / Macros Complémentaires/Parcourir/ puis selection du *.xla)

Bonne soirée
A+
Sylvie
 

Pièces jointes

Re : Afficher feuille classeur par Liste déroulante

Bonsoir,

En retour de l'aide reçu par Kotov et CB60, que je remercie une fois encore et sans oublier Sylvie, j'ai fait une "mixture" des deux mais j'ai un problème. Voici donc le fichier ci joint pour mieux comprendre.
Je reçois le message Erreur de compilatioj variable non définie...

Merci de me sortir de ce problème.

Zeltron24
 
Dernière édition:
Re : Afficher feuille classeur par Liste déroulante

Bonsoir CB60,

J'ai pourtant vérifié deux fois avant de me lancer dans un besoin d'aide
La vue n'est plus ce qu'elle était à 20 ans. Elle baisse. Va falloir soigner cela.

Encore merci pour ton aide.
Cordialement
Zeltron24
 
Re : Afficher feuille classeur par Liste déroulante

Bonsoir Zeltron, le Forum,

Je viens de regarder ta macro.
2 choses à corriger

1) Tu dois saisir le code suivant dans UserForm_Initialize et non dans Sub FrmMois_Initialize()

Private Sub UserForm_Initialize()
With ListeMois
.AddItem "Janvier"
.AddItem "Février"
.AddItem "Mars"
.AddItem "Avril"
.AddItem "Mai"
.AddItem "Juin"
.AddItem "Juillet"
.AddItem "aout"
.AddItem "Septembre"
.AddItem "Octobre"
.AddItem "Novembre"
.AddItem "Décembre"
End With
End Sub

2) le code de ton bouton d'appel du formulaire est erroné, voiçi le code correct :

Sub Mois()
FrmMois.Show
End Sub

Ainsi lorsque tu cliques sur le bouton d'appel du formulaire, la macro UserForm_Initialize() est lancée, et les mois s'affichent dans ta liste

Bonne soirée
Kotov
 
Re : Afficher feuille classeur par Liste déroulante

salut à tout le forum

je suis en retard, mais regarde si c'est cela que tu veux, sans list box uniquement en feuille excel

salutations
 

Pièces jointes

Re : Afficher feuille classeur par Liste déroulante

Bonsoir


juste une question :

a quoi ca sert une macro puisqu`en faisant un click droit ds Excel (sur le bouton onglet suivant) on obtient deja la liste des feuilles??

C`est juste une question parce qu`une fois j`avais cherche une macro pour un truc qui existait deja ds excel

a+

VBA_DEAD
 
Re : Afficher feuille classeur par Liste déroulante

salut le forum

il est possible d'avoir cette necessite dans certains cas

ex : un fiche client par feuille avec l'identification et en base de données, l'historique des ventes et reglements

avec une centaine de clients, le click droit de la souris devient fastidieux en lecture et en choix.

avec cette methode tu peux cacher tes fiches client et ne le afficher qu'au besoin

salutations à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…