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

XL 2013 Création d'une liste déroulante avec les noms des onglets

AnjyD

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide car j'aimerais créer une liste déroulante avec tout les noms des onglets de mon classeurs qui se mettrais automatiquement à jour lors de la création d'autres onglets. L'objectif de cette liste déroulante, c'est de me permettre de sélectionner l'onglet dans lequel je souhaite coller mes données.
Il faut savoir que j'ai une partie du code final. C'est à dire que je peux actuellement copier et coller mes valeurs dans un onglets mais lors de la création d'autre onglet, je ne peux pas opérer la même manipulation à moins de créer spécialement des boutons pour ces nouvelles feuilles.
Je sais pas si j'ai été assez clair.

Je vous remercie d'avance pour votre aide.
 

st007

XLDnaute Barbatruc
Bonjour,
ce code t'établira la liste de tes onglets en colonne A1:A exploitable par le gestionaire de noms de manière dynamique avec nbval(a:a)
VB:
Sub listonglets()
Dim i As Integer
    Range("A1").Select
    For i = 1 To Sheets.Count
        ActiveCell.Value = Sheets(i).Name
        ActiveCell.Offset(1, 0).Select
    Next i
End Sub
ou par formule avec lire classeur , macroxl4
 

AnjyD

XLDnaute Nouveau
Bonjour @Phil69970,

Je te remercie pour ta réponse. Mais il se trouve que j'étais tombée sur cette réponses. Mais le problème qui se pose dans mon cas c'est que je n'arrive pas a faire exécuter ces lignes de code. C'est probablement dû au "Private Sub" car je n'arrive pas à le voir dans la "rubrique" macro.
 

AnjyD

XLDnaute Nouveau
Je te remercie pour ta réponse @st007,
Mais je voudrais savoir si c'est possible de mettre cette liste sous forme de liste déroulante et non sous la forme d'une simple liste ?
 

cp4

XLDnaute Barbatruc
Bonjour @AnjyD , @st007 , @Phil69970 , le forum,

@AnjyD : Tu aurai dû travailler sur l'exemple du lien de Phil69970 et joindre un fichier.
Comme tu ne l'as pas fait, on ne peut pas te proposer de solution répondant parfaitement à tes attentes.
Généralement, je n'aide pas ceux ou celles qui ne font pas l'effort de joindre un fichier. J'ai pris le fichier de JB (repose en paix) et complété le code.
Bah! sans effort on arrive à rien dans la vie.

Bonne journée.

ps: Liste de validation sur toutes les feuilles même cellule (à adapter à ta convenance).

edit: code dans module Thisworkbook
 

Pièces jointes

  • Liste de validation.xlsm
    21.2 KB · Affichages: 32

job75

XLDnaute Barbatruc
Bonjour à tous,

Un solution voisine de celle de cp4 mais avec la feuille auxiliaire "Liste" (à masquer).

Le code dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim liste(), s As Object, n%
ReDim liste(1 To Sheets.Count - 1, 1 To 1)
For Each s In Sheets
    If s.Name <> "Liste" And s.Name <> Sh.Name Then
        n = n + 1
        liste(n, 1) = s.Name
    End If
Next
With Sheets("Liste") 'feuille auxiliaire
    .Cells(1).Resize(n) = liste
    .Cells(1).Resize(n).Name = "Liste" 'nomme la plage
End With
End Sub
Les listes de validation ont été créées une fois pour toutes dans les feuilles (ici en A1).

A+
 

Pièces jointes

  • Liste(1).xlsm
    21 KB · Affichages: 26

job75

XLDnaute Barbatruc
Bien voir que ma solution comme celle de cp4 ne permettent pas le copier-coller d'une feuille à une autre.

Edit : en fait celle de cp4 permet le copier-coller entre feuilles.
 
Dernière édition:

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour AnjyD, Philippe, st007, cp4 & job75

Voilà une procédure (3 lignes...) reprise par notre regretté ami Ti (qu'il a lui même reprise de Ron de Bruin). Elle ne crée pas de liste mais elle montre un menu qui te permet de sélectionner la feuille que tu veux. Copie-la dans un module et affecte-lui un bouton, ou un raccourci clavier (dans le fichier joint : Ctrl+Shift+M --- Cela te permet d'appeler le menu où que tu te trouves (dans le fichier cela va sans dire )et voilà.

VB:
Sub Menu()
Application.CommandBars("Workbook tabs").ShowPopup 500, 200
End Sub

Bonne journée à toutes & à tous
@+ Eric c
 

Pièces jointes

  • Se rendre sur la feuille X .xlsm
    17.8 KB · Affichages: 29

AnjyD

XLDnaute Nouveau
Merci une nouvelles fois pour vos réponses, c'est vraiment gentil de m'aider.
Mais si je n'ai pas pris la peine de mettre en pièce jointes c'est parce qu'il s'agit d'un document appartenant à mon entreprise soit confidentiel.
Mais j'ai trouvé un moyen de vous le montrer, en veillant à supprimer les pages confidentiels.
J'ai appliquée les conseilles que vous m'avez données et celles-ci ne fonctionnent pas.
 

Pièces jointes

  • test automatisation.xlsm
    120.1 KB · Affichages: 23

cp4

XLDnaute Barbatruc
Bonjour Eric C,

C'est super ton truc. Comment as-tu fait pour le raccourci avec shift. Sur mon excel 2010, je n'ai que Ctrl + lettre alors que le tien est: Ctrl+Shift+M.

Merci.

ps: est-ce que le Shift sert juste au m majuscule?
 

mapomme

XLDnaute Barbatruc
Bonjour à tous ,

Personnellement, je fais cela sans formule, sans macro VBA : Simplement par un clique-droit.
Copier, clique-droit, sélection de l'onglet, coller fonctionne très bien et la liste est toujours à jour (ça sert à quoi que Mr. Krosoft se décarcasse ? ).


 
Dernière édition:

Eric C

XLDnaute Barbatruc
Bonjour le fil
@mapomme : c'est ce que je dis souvent lorsque la question est posée mais nous sommes dans une période électorale où tout le monde réclame sa "macron"... Oupssss...
@cp4 : J'ai simplement appuyé sur la touche Maj lorsque j'ai voulu intégré le "m" dans l'option de la macro (cela ne sert pas trop avec le "M" ou le "m" ????

Bonne après-midi à toutes & à tous
@+ Eric c
 

Discussions similaires

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