IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Afficher un contenu selon choix de liste déroulante [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 94
    Points : 55
    Points
    55
    Par défaut Afficher un contenu selon choix de liste déroulante
    Bonjour à tous,

    Je ne suis pas certain que le titre soit très explicite, mais j'ai du mal à faire plus clair (ce qui explique sans doute que je n'ai pas trouvé de réponses par les recherches)

    En réalité je souhaiterai arriver à peu près au même résultat que le fichier mis en pièce jointe (un référentiel d'évaluation librement téléchargeable sur le site du ministère du développement durable), c'est à dire, onglet Étape 1, quand je sélectionne un item dans le menu déroulant, il va chercher dans l'onglet data_QS (ou dans l'onglet Questions Stratégique, je ne sais pas bien) l'ensemble des questions attachées au menu déroulant et il me les affiche dans les cellules en dessous du menu déroulant.
    Si je sélectionne un autre item dans le menu, l'ancien texte est remplacé par les nouvelles questions associées à l'item.

    Vous avez une idée de la façon de faire cela ? Les macros ne sont pas consultables (il faut un mot de passe).

    Merci par avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Dans le classeur que tu as joint le code pour ce que tu demandes dois ressembler à ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub lst_Change()
     
    Dim i, ligne, qi, ri As Integer
    Dim trouve As Boolean
    Dim code_fe, code_qu As String
     
    i = 1
    trouve = False
    'Tant que la cellule Bi est remplit et que l'on a pas trouvé la valeur sélectionnée dans la liste déroulante
    While (Sheets("Finalités-Eléments de démarche").Range("B" & i).Value <> "") And trouve = False
        If Sheets("Finalités-Eléments de démarche").Range("C" & i).Value = lst.Value Then
            trouve = True
            'la variable code_fe prend la valeur du code de la la finalité ou de l'élément
            code_fe = Sheets("Finalités-Eléments de démarche").Range("B" & i).Value
        End If
        i = i + 1
    Wend
     
    ligne = 5
    qi = 1
    While Sheets("Finalités-Eléments de démarche").Range("A" & qi).Value <> ""
     
        'Si la cellule Aqi de la feuille Questions stratégiques commence par la variable code_fe
        If LCase(Sheets("Questions stratégiques").Range("A" & qi).Value) Like LCase(code_fe) & "*" Then
     
            'Copie la question
            Sheets("Questions stratégiques").Range("B" & qi).Copy Destination:=Worksheets("Etape1").Range("B" & ligne)
            'la variable code_qu prend la valeur du code de la question
            code_qu = Sheets("Questions stratégiques").Range("A" & qi).Value
     
            ligne = ligne + 2
            ri = 1
            While Sheets("Repères").Range("A" & ri).Value <> ""
                If LCase(Sheets("Repères").Range("A" & ri).Value) Like LCase(code_qu) & "*" Then
     
                    'Copie la question
                    Worksheets("Etape1").Range("B" & ligne) = "-"
                    Sheets("Repères").Range("B" & ri).Copy Destination:=Worksheets("Etape1").Range("C" & ligne)
                    ligne = ligne + 1
                End If
                ri = ri + 1
            Wend
            ligne = ligne + 1
        End If
        qi = qi + 1
    Wend
     
    End Sub
    Dans ce code j'ai nommé la liste déroulante "lst" et j'ai inséré les questions à partir de la ligne 5 sur la feuille "Etape1".

    J'espère que ma réponse t'aidera

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup ! Je n'ai pas encore eu l'occasion de tester ou déchiffrer le code, mais au moins, je sais que j'ai la réponse à portée de main.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2000] Afficher un texte selon choix d'une liste déroulante
    Par wyzer dans le forum VBA Word
    Réponses: 11
    Dernier message: 13/12/2017, 10h12
  2. [WD-2003] Cacher du texte selon choix de liste déroulante
    Par Nessie37 dans le forum Word
    Réponses: 6
    Dernier message: 23/11/2014, 21h23
  3. [AC-2003] Calcul selon choix de Liste déroulante
    Par brankorri dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/09/2012, 13h48
  4. Redirection selon choix dans liste déroulante
    Par siuol77 dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2010, 06h46
  5. contenu de div qui change selon choix dans liste de boutons radios ?
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/12/2008, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo