Menu déroulant

Bonjour,

Dans mon programme excel, je souhaite afficher différents types de menus déroulant en fonction du choix utilisateur.

Je ne sais pas comment faire apparaître automatiquement un menu déroulant et le supprimer lorsque le choix utilisateur change, en sachant que mes menus déroulants vont chercher les informations sur une autre page ?

Ne serait-il pas plus pertinent de les rendre visibles et invisibles, quitte à ce que les menus se superposent ?

Merci d'avance pour votre aide,

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    En fait, je souhaiterais le faire en VBA...
    C'est à dire que si l'utilisateur sélectionne l'option 1, j'aimerais afficher un type de menu déroulant qui affiche certaines données, sinon, s'il sélectionne l'option 2, j'aimerais qu'un autre menu déroulant (ne contenant pas les mêmes informations) apparaisse...

    Merci d'avance
    1. Salut,

      Je ne sais pas quel est ton niveau en VB, mais je peux toujours te donner une partie d'un code que j'utilise pour ça :

      For Each projet In Sheets("refs").[O2:O10000]
      If projet = "" Then Exit For
      If projet.Offset(0, 1) = True And projet.Offset(0, -1) = temp4 Then
      If temp2 = "" Then temp2 = projet.Value Else temp2 = temp2 & "," & projet.Value
      End If
      Next

      En gros, je boucle sur des projets. Si le projet est actif (True) et qu'il correspond à une catégorie donnée (temp4), alors tu rajoute le nom du projet dans une liste déjà existante en ajoutant une "," (ici temp2).

      Ensuite :

      With Sheets("Saisie").Range("F9:G9").Validation
      .Delete
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
      xlBetween, Formula1:=temp2
      End With

      Sur la feuille Saisie, la cellule F9, tu me supprime toute liste existante, puis tu m'en recréé une avec la valeur de temp2 que j'ai définie plus haut.

      Pour faire simple, de ton côté, ca donnerait :

      If projet = option1 Then
      liste = "Opt1S1,Opt1S2,Opt1S3"
      ElseIf projet = option2 Then
      liste = "Opt2S1,Opt2S2,Opt2S3"
      End If
      With Sheets("Saisie").Range("F9:G9").Validation
      .Delete
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
      xlBetween, Formula1:=liste
      End With

      Ca va ? Tu suis ? =)
      1. Bonjour,
        Rend toi dans Mise en page et active les menu déroulant de ton choix.
        A+
        Félix