Affecter des macros à une liste déroulante

Bonjour à tous, je suis nouveau sur le forum, et je débute sur excel en VBA. J'ai comme qui dirait un petit problème dans mon projet excel pour la création d'une liste déroulante qui corresponde à mes attentes, et voila prés d'une semaine que j'arpente les forum en vain pour trouver une solution.

Je recherche une solution détaillé, si possible, pour être capable de la mettre en œuvre moi même.

Je vous situe le contexte :

J'ai un fichier excel comportant une trentaine de feuilles qui correspondent chacune à un suivi d'avancement d'un projet, ceux ci peuvent être regroupés en 11 secteurs ( exemple usinage, rectification, maintenance, magasin... ). 8 animateurs s'occupent de tenir à jour ces données de suivi en fonction du secteur dans lequel elles se trouvent. Pour faciliter la manœuvre, je souhaite cacher la trentaine de feuilles pour n'avoir qu'une feuille d’accueil à l'ouverture du fichier excel, où se situerait une liste déroulante demandant de choisir un secteur à l'animateur ( exemple usinage ) et de validé son choix par un clic sur une icône de validation a coté de la liste, opération qui masquerait la page d’accueil et afficherait les 3 feuilles projet du secteur de l'usinage. Sur chaque feuilles, j'ai une icône d’accueil avec une macro affecté qui redirige vers la page d’accueil en masquant de nouveaux les feuilles apparue et en affichant la page d’accueil.

Là où je bloque, c'est dans la création de la liste déroulante adéquate à mon projet ( j'ai essayé la liste formulaire, je n'arrive pas a faire ce que je veut, et l'active X je n'arrive même pas a sélectionner mes services pour qu'il s'affichent dans la liste déroulante ) et dans l'affectation de macro pour chaque choix de la liste.

Pourriez vous m'aidez s'il vous plait ? Car j'avoue que je commence a perdre espoir ^^

Bonjour

Ce serait bien de voir le fichier (avec données non confidentielles)

Est-ce possible ?

Amicalement

J'ai créé un fichier exemple sans valeur, juste avec la trame

Merci d'avance

263projet-1.xlsm (38.25 Ko)

Aucune solution ?

re

Tu la veux dans quelle cellule de la feuille accueil cette liste ??

A te relire

Edit Dan : vois le fichier joint avec une proposition. A l'ouverture les feuilles seront cachées, à l'exception de la feuille Accueil. Pour visualiser les feuilles, choisis dans la liste déroulante en C3, puis clique sur le V vert.

Si ok et terminé, merci de cloturer le fil lors de ta réponse en cliquant sur le V vert à coter du bouton EDITER

250projet-1.xlsm (58.25 Ko)

Merci pour la solution, mais comment l'adapter à mon véritable fichier Excel? Quelles sont les variables à changer? (en sachant que les feuilles de mon fichier ne sont pas nommées de la même manières et ne sont pas dans le même ordre non plus). Et j'aimerais que la feuille d'accueil se masque dés lors que l'on appuie sur le bouton validé de la page d'accueil, et que l'on sois rediriger sur la page d'accueil en appuyant sur un bouton accueil présent dans chaque feuille du fichier, ce qui masque à nouveau les feuilles ouverte précédemment, pour ne laisser visible que la page d'accueil (le bouton accueil n'étant pas présent sur ce fichier, pourriez vous me donner le code ?).

Auriez vous connaissance d'un cours qui me permettrais de réaliser cela par moi même ?

Merci

Bon j'ai réussi à sortir le code suivant pour mon fichier :

Sub listedéroulante()
Dim choix As Byte
choix = Range("E1").Value
Select Case choix
    Case 1
    If IsEmpty(Range("A1")) Then MsgBox "Veuillez sélectionner un service": Range("A1").Select: Exit Sub
    Case 2
Sheets("Accueil").Select
    ActiveWindow.SelectedSheets.Visible = False
    Sheets("Entretien ENT").Visible = True
    Sheets("Entretien ENT").Activate
    Range("S21").Select
    End Select
End Sub

C'est un peu à rallonge j'avoue, d'autant que je n'ai copier que le code de la case1 et 2 ( il y en a 13 ), mais vu que je débute ça fera l'affaire. En revanche, il ne me reste plus qu'a trouver le moyen de valider la sélection par un clic sur l’icône de validation, et ça je ne trouve pas, auriez vous une solution ?

re

Merci pour la solution, mais comment l'adapter à mon véritable fichier Excel?

Mais pourquoi ne mets-tu pas le vrai fichier ?? Cela évite de passer du temps inutilement et permet de te donner une solution appropriée. Là à la vue du code que tu mets, on voit que ton fichier est différent.

Comment t'aider si, de surcroit, le nom des feuilles n'est pas le même. J'arriverai jamais à comprendre pour certains forumeurs placent un fichier qui n'est pas l'original ou que sa structure est différente.

Mets ton vrai fichier sans données confidentielles, avec le nom des feuilles correctes, la liste des secteurs et liste déroulante bien positionnée.

A te relire

Voici mon support que j'utilise, en revanche j'ai supprimé toutes les données présentes sur les feuilles, mais ça ne devrait pas poser problème non ? Navré d'avoir posé le mauvais support au premier coup, par soucis de confidentialité, et pensant qu'il suffisait ensuite d'adapter la solution à mon véritable fichier, je pensais bien faire

Par ailleurs, j'ai rajouté un choix "intégralité" où la sélection donnerait accès à l'intégralité des feuilles du fichier.

Merci

178projet-de-suivi.xlsm (158.49 Ko)

re,

Il est plus simple d'éviter les objets sur une feuille. Donc préférable de mettre ta liste déroulante dans une cellule. Cela t'évietra d'avoir ce chiffre en A16 qui n'est pas très compréhensible pour l'utilisateur.

A l'ouverture tu veux la feuille Accueil aussi ou seulement les deux feuilles évaluation et objectifs ??

En fait c'est surtout que je préfère la liste déroulante formulaire à celle dans la cellule, je la trouve plus esthétique, et je cache A1 à A16 avec un rectangle blanc . Et à l'ouverture, je veux uniquement la page d'accueil, pas les deux autres.

Et aussi, quand les feuilles du service sélectionné s'affichent, la feuille d'accueil doit se masquer ( désolé si je me répète ^^ )

C'est bon j'ai finis par faire un code qui marche, en m'inspirant du tient. Je le donne pour clôturer le topic, merci pour le coup de main quand même, a+

Sub Image12_Clic()

If Sheets("Accueil").Range("F1") = 1 Then
    MsgBox "Veuillez sélectionner un service", vbCritical
    GoTo FIN
    End If

For sh = 2 To Sheets.Count

If UCase(Sheets(sh).Name) Like Range("F4") & "*" Then
    Sheets(sh).Visible = xlSheetVisible
Else: Sheets(sh).Visible = xlSheetVeryHidden

    End If
    Next

Feuil2.Visible = xlSheetVisible
Feuil3.Visible = xlSheetVisible
Sheets("Accueil").Visible = xlSheetVeryHidden

FIN:

End Sub

Petit Edit: Pour ceux que sa intéresse, dans la cellule F4 il y a la formule suivante :

=SI(F1=1;1;SI(F1=2;A3;SI(F1=3;A4;SI(F1=4;A5;SI(F1=5;A6;SI(F1=6;A7;SI(F1=7;A8;SI(F1=8;A9;SI(F1=9;A10;SI(F1=10;A11;SI(F1=11;A12;SI(F1=12;A13;A14))))))))))))

et dans la colonne A, de la ligne 3 à 14 il y a le nom des services ( il s'agit de la plage d'entrée de la liste déroulante ),

et la cellule F1 fait office de cellule liée de la liste déroulante.

Sans cette petite précision ça ne marchait pas ^^'

Rechercher des sujets similaires à "affecter macros liste deroulante"