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

XL 2013 Liste déroulante avec affichage multiple

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 !

M.Ben

XLDnaute Junior
Bonjour le forum,

Je vous sollicite car je n'ai pas d'idée sur la ou les manières qui existe pour répondre à la demande que j'ai.

J'ai un fichier Excel qui sert à répertorier les heures passées par semaine (Feuille de pointage).

J'ai des onglets qui vont de S01 à S52 (correspondantes au semaines de l'année)

Dans celles-ci j'ai une liste déroulante en colonne B qui est liée à des données qui sont présentes dans l'onglet "Détails désignation".

Ma question est la suivante, existe t-il un moyen par formule ou VBA pour que dans cette liste, on y voit les éléments de la colonne A à C de l'onglet "Détails désignation", et que lorsque on sélectionne un donnée que seule la donnée "Catégorie" apparaissent.

Il existe une méthode qui consiste à concaténer les données, mais le problème (si je ne dis pas de bêtise) c'est que toutes les données apparaitront dans la cellule avec cette méthode.

Un peu à l'image d'une listeBox ou une ListView, sans passé par une ComboBox ou autre (pour éviter d'avoir x contrôle formulaire à a jouter à toutes mes lignes de tous mes onglets).

Auriez-vous des pistes ou des exemples sur lesquels je pourrais m'appuyer.

J'ai joint le fichier Excel afin de vous permettre de visualiser comment sont construits les différents onglets.
 

Pièces jointes

Bonjour M.Ben et bienvenu sur XLD, Bonjour Fanfan,
Une autre approche en utilisant dans Thisworkbook :
VB:
' Sur clic cellules B4:B29
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Left(ActiveSheet.Name, 1) = "S" Then
        If Not Intersect(Target, [B4:B29]) Is Nothing Then
            ActiveSheet.Unprotect
            With Selection.Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Liste"
                .ShowInput = True
                .ShowError = True
            End With
            ActiveSheet.Protect
        End If
    End If
Fin:
End Sub
' Sur validation
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Left(ActiveSheet.Name, 1) = "S" Then
        If Not Intersect(Target, [B4:B29]) Is Nothing Then
            ActiveSheet.Unprotect
            Application.EnableEvents = False
            On Error Resume Next
            Target = Split(Target, " - ")(1)
            ActiveSheet.Protect
        End If
        Application.EnableEvents = True
    End If
End Sub
 

Pièces jointes

Bonsoir, Fanfan et Sylvanu,

Je vous remercie pour vos propositions les 2 fonctionnes très bien et elles répondent à ma demande.

J'aime beaucoup le rendu de celle de Sylvanu, Car on dirait une liste déroulante classique que l'on obtient quand on passe par la validation de donnée. Le seul inconvénient que je vois, c'est qu'on ne voit pas la totalité de ce qui est écrit et que j'ai l'impression qu'on ne peut pas modifier ou alors je ne vois pas la ligne qui gère le paramètre.

Celle proposé par FanFan est top pour l'affichage (on voit tous et on peut jouer sur la largeur des colonnes si on le souhaite. C'est l'userform qui fait bizarre mais bon ça fait parfaitement le taf 🙂.

Par contre FanFan et Sylvanu, je constate que vous faites parties des plus actifs et que vous possédez des compétences hors normes.

Est-ce un abus si je vous demande de m'aider à décrypter vos programmes car certaines fonctions utilisées sont pour moi inconnu (surtout dans la proposition de Fanfan).

La programmation de Sylvanu m'est un peu plus familière par rapport aux quelques programmes que j'ai en cours de développement (il y en a pas des masses, mais petit à petit j'apprend et on me sollicite de plus en plus pour développer des fichiers Excel quand j'ai du temps pour m'y consacrer).

Merci encore à vous deux.

Cordialement
 
Bonjour Sylvanu,

Vos propositions sont géniales grand merci, et les commentaires vont bien m'aider pour mes projets en cours et futurs.
3- J'ai aligné la colonne B en centrée ( il y avait un peu de tout comme alignement )
Oui je comptais m'en occuper une fois l'histoire des listes déroulantes réglées.

Je doit reprendre toutes les semaines, car de mémoires j'avais décelé des problèmes dans les formules etc.

Faut que je remette un peu d'ordre dedans, car au file des années que le fichier est utilisé, certains déprotègent la feuille.
Font leurs modifications sans ce préoccuper des répercussions et d'autres ne connaissent pas forcement Excel.

Encore une fois merci
 
Le mot de passe est un grand débat, je proposerai de nouveau l'idée
J'ai toujours adopté la philosophie suivante en accord avec ma direction :

Je suis responsable de cet outil donc je le protège, et en assume la responsabilité.
Si quelqu'un n'est pas d'accord je lui livre une version non protégée. MAIS je ne connaitrais pas cette version, je n'en ferais ni la maintenance, ni les évolutions, et encore moins les corrections.
Cette version sera assumée uniquement pas le demandeur.

Vu le nombre de conneries qu'on peut faire sur un fichier XL et leurs conséquences, c'est un argument qui a toujours porté.
( évidemment ne marche que si vous êtes soutenu par votre hiérarchie. )
 
J'aime bien cette philosophie, je la présenterai comme tel, je verrai bien les réactions 😄
 
- 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

Réponses
10
Affichages
334
Réponses
11
Affichages
248
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…