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

Activer une feuille précise

  • Initiateur de la discussion Initiateur de la discussion Vériland
  • Date de début Date de début

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 !

V

Vériland

Guest
Dans un classeur qui contient un certain nombre feuille (on va dire 30), je voudrais pouvoir accéder rapidement à une feuille sans passer par les onglets...

Dans un premier temps :

- pourrait-on (grâce à une macro) ouvrir une boite de dialogue qui listerait l’ensemble des feuilles (avec leur nom) présentes dans le classeur …

et dans un deuxième temps :

- que dans cette même boite, on puisse accéder à une feuille en la sélectionnant directement dans la liste ?

Pour l’instant, j’arrive à compter les feuilles mais non à créer la liste. Si quelqu’un avait une réponse je suis preneur d’un petit exemple…

Merci à vous

A+ Vériland
 
Voici le code qui te permet de choisir l'ouverture d'une feuille à partir d'un formulaire qui affiche toutes les feuilles disponibles :

Sub AccesSection()
'code diffusé par René Roy, mpfe
' Permet l'affichage d'une boîte de dialogue pour l'accès
' à la section de son choix
Dim i As Integer
Dim TopPos As Integer
Dim SheetCount As Integer
Dim PrintDlg As DialogSheet
Dim CurrentSheet, FeuilleDépart As Worksheet
Dim cb As OptionButton
Application.ScreenUpdating = False

' Ajoute une feuille de dialogue temporaire
Set CurrentSheet = ActiveSheet
Set FeuilleDépart = ActiveSheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add

SheetCount = 0

' Ajoute les boutons d'option
TopPos = 40
For i = 1 To ActiveWorkbook.Worksheets.Count
Set CurrentSheet = ActiveWorkbook.Worksheets(i)
' Ne tient pas compte des feuilles vide ou masquées
If Application.CountA(CurrentSheet.Cells) <> 0 And _
CurrentSheet.Visible Then
SheetCount = SheetCount + 1
PrintDlg.OptionButtons.Add 78, TopPos, 150, 16.5
PrintDlg.OptionButtons(SheetCount).Text = _
CurrentSheet.Name
If CurrentSheet.Name = FeuilleDépart.Name Then _
PrintDlg.OptionButtons(SheetCount).Value = xlOn
TopPos = TopPos + 13
End If
Next i

' Positionne les boutons OK et Annuler
PrintDlg.Buttons.Left = 240

' Dimensionne la hauteur, la largeur et le titre de la bte de dialogue
With PrintDlg.DialogFrame
.Height = Application.Max _
(68, PrintDlg.DialogFrame.Top + TopPos - 34)
.Width = 230
.Caption = "Quelle section souhaitez-vous accéder ? "
End With

' Change l'ordre de tabulation des boutons OK et Annuler
' afin de donner le focus au premier bouton d'option
PrintDlg.Buttons("Button 2").BringToFront
PrintDlg.Buttons("Button 3").BringToFront

' Affiche la boîte de dialogue
FeuilleDépart.Activate
Application.ScreenUpdating = True
If SheetCount <> 0 Then
If PrintDlg.Show Then
Application.ScreenUpdating = False
For i = 1 To SheetCount
If PrintDlg.OptionButtons(i).Value = xlOn Then
Worksheets(PrintDlg.OptionButtons(i).Caption).Activate
CelluleEnCours = ActiveCell.Address
Range("A:S").Select
ActiveWindow.Zoom = True
Range(CelluleEnCours).Select
ActiveWindow.Zoom = 100
End If
Next i
End If
Else
MsgBox "Toutes les feuilles sont vides."
End If

' Supprime la feuille de dialogue temporaire (sans message d'avertissement)
Application.DisplayAlerts = False
PrintDlg.Delete
End Sub


*************************************************
 
Alors là... je suis vert...

c'est exactement ce que je voulais... Merci à toi Blandine et à René ROY son concepteur...

PS : Ti, si tu retrouves la solution dans tes archives, n'hésites pas à le remettre en ligne...

"Excel"ante soirée à tous

A+ Vériland
 
Bonsoir Sylvain,

clic droit peut-être, mais par exemple un classeur qui contient plusieurs feuilles dont la case <onglets de classeur> dans <outils options> est désactivée... le clic droit sur la barre d'onglets devient superflu...

A+ Vériland
 
Bonjour,

Ne serait ce pas plus simple en nommant une cellule de chaque feuille dans la zone nom ?

Ca répond a son attente
1- la liste des feuilles
2- Accés direct

ou bien aurais je mal saisi la question ?

Gérard
 
re bonjour,

Ily a aussi la solution d'un clic droit en bas à gauche de la feuille
c'est à dire sur les flêches de défilement des onglets
Meme résultat : liste des feuilles et accés direct

ça évite de réinventer la roue non ?

Gérard
 
Je ne sais pas si les trois derniers messages sont du même Gérard...

En tout cas, Je n'ai pas pris le temps de répondre à la première solution (de Gérard) qui proposait le fichier joint "selectFeuilles.zip" (voir plus haut). Je l'ai essayé et je l’ai depuis adapté dans mon classeur, il est vraiment très bien fait... en fait il répond à toutes mes questions, je le privilégie même à la solution de Blandine qui dit en passant est aussi intéressant, (voir plus haut)…

Pour répondre aux derniers messages (de Gérard), il est possible de nommer une cellule mais cela implique à chaque fois un paramétrage sur les nouvelles feuilles… (plus compliqué à mettre en place lorsque les feuilles s’enregistrent automatiquement)…

D’autre part on peut aussi faire défiler les feuilles grâce aux flèches…c’est très pratique… mais si le classeur contient… allez… 15 feuilles… et que chacune de ces feuilles portent un nom à rallonge du style…« planning mois de SEPT 2002 Gérard 01»…et ainsi de suite…pour accéder à la feuille 14 puis revenir à la 2…devient à mon avis vite acrobatique…Vous allez me dire : pourquoi faire simple quand compliqué ça marche ?…


Personnellement je préfère accéder aux différentes feuilles de mon classeur d’une manière rapide, par le biais d’une boite de dialogue qui s’affiche au centre de l’écran ; j’ai d’autant plus, pris pour habitude de travailler avec Excel en mode plein écran, onglets désactivés…

Bref, la solution pour moi est dans "selectFeuilles.zip" (voir plus haut)… Si quelqu’un a pris le temps de lire ce message c’est vraiment un bon forum.

J’en profite pour faire une autre demande :

Je voudrais renommer une feuille dans une boite de dialogue. En fait il serait intéressant d’ajouter ce bouton dans l’exemple de Gérard "selectFeuilles.zip" (voir plus haut)… et d’avoir dans cette boite de dialogue une option supplémentaire : RENOMMER…

Merci à celui ou celle qui aura la réponse…

A+
 
Bonjour à tout les Gérard

dans le le fichier "selectFeuilles.zip" que j'ai mis sur le site, il suffit de créer un bouton sur le UserForm et de lui mettre le code suivant et voila le tour est joué

Sub CmdRenommer_Click()
Nouveau_Nom_Feuille = Application.Dialogs(xlDialogWorkbookName).Show
End Sub

a+
 
et voilà, yaka demander..

merci Gérard pour l'astuce "renommer une feuille"... j'ose à peine faire une autre demande car je ne voudrais pas paraître ennuyeux... mais je me lance…

En fait, il manquerait juste une option sur la boite de dialogue… celle de supprimer une feuille sélectionnée…

A en voir la qualité du forum, je ne doute pas de la réponse…

Merci pour votre aide
 
De mieux en mieux…yaskifo... je pense que la question de départ est largement résolue, personnellement je ne vois pas ce qu’il y aurait à changer dans cet exemple… on sélectionne… on clique et le tour est joué… avec en prime des options très utiles pour des classeurs volumineux… Merci Gérard pour la diffusion de tes fichiers très explicites…

A+ et bon forum à 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
275
T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
459
Themax
T
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…