Partage
  • Partager sur Facebook
  • Partager sur Twitter

macro sur une liste déroulante excel

    27 janvier 2012 à 11:41:32

    Bonjour,
    J'ai un fichier excel dans lequel se trouve une liste déroulante.
    Dans cette liste déroulante, il y a les jours du mois et 3 indicateurs particuliers (1,2,3... semaine, samedis, mois).
    Dans le fichier, il y a une feuille par jour contenant des valeurs (_1G, _2G ... _semaineG...)
    Certaines de ces données sont présentes (recopiées) dans la feuille (quot) contenant le liste déroulante.
    Lorsque je sélectionne un jour dans la liste déroulante, j'aimerai voir apparaitre dans les cellules de le feuille "quot" les valeurs correspondant a ce jour mais je n'y arrive pas.
    Merci de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      17 février 2012 à 10:23:31

      Salut.

      Le mieux serait de déposer ton fichier (ou du moins un exemple, histoire de voir à quoi ça ressemble) parce que là c'est compréhensible mais généralement une illustration est la bienvenue.

      Citation : mama034

      Dans le fichier, il y a une feuille par jour contenant des valeurs (_1G, _2G ... _semaineG...)


      Ton classeur a combien de feuilles du coup? o_O
      Sinon pour répondre à ta question, dans ta feuille "quot" pourquoi tu ne mets pas en place des filtres de sélection? Admettons que tu es une colonne "jour" sur laquelle tu appliques un filtre de sélection. Suffit de choisir le jour que tu veux dans le filtre et ça ne t'affiche plus que les lignes relatives à ce jour.
      • Partager sur Facebook
      • Partager sur Twitter

      Le Kansas City Shuffle.. c’est quand tout le monde regarde à gauche et que tu vas à droite.

        21 février 2012 à 9:04:34

        Comment est-ce qu'on applique un filtre?
        Le but final est :
        si on choisit dans la liste déroulante le jour 1, l'onglet 1_D s'affiche et les données de l'onglet 1_G s'affichent dans l'onglet 'quot'.
        si juste après on cherche le jour 5, les onglets du jour 1 disparaissent et celles du jour 5 s'affichent.
        Je ne peux pas déposer le fichier en pièce jointe car il est trop lourd (plus de 1Gb)
        Merci pour l'aide
        • Partager sur Facebook
        • Partager sur Twitter
          21 février 2012 à 17:02:34

          Salut.

          Si tu tiens à faire ça avec une liste déroulante alors tu sélectionnes la cellule où tu veux que la liste soit placée et tu vas dans Données > Validation > Autoriser : Liste > Source de données. Une fois que tu as ta cellule qui peut prendre n'importe quelle valeur de ta liste déroulante il suffit de récupérer la valeur de la cellule et de s'en servir.

          Exemple:
          Tu as ton fichier Excel et dans ta colonne C il y a tous les jours - admettons que tu possèdes 5 jours (C1 -> jour1, C2 -> jour2 ... C5 -> jour5) Disons qu'en D1 tu places ta liste déroulante où tu sélectionnes le jour que tu veux. Alors tu fais ta liste déroulante sur D1 (en précisant que la source de données est la plage de cellules C1:C5). Tu peux désormais choisir en D1 le jour que tu veux entre 1 et 5.

          Admettons que ton classeur est plusieurs feuilles... Tu fais une macro du genre:

          Sub Macro()
              Sheets("quot").Select 'tu sélectionnes ta feuille quot
              ActiveSheet.Cells.Select 'tu prends toutes les cellules de cette feuille
              Selection.Delete 'tu supprimes le contenu
              
              Sheets(1).Activate 'tu sélectionnes la feuille où tu as ta liste déroulante
              '(moi c'est la feuille d'index 1 dans mon exemple)
              jourSelectionne = Range("D1").Value 'tu attribues la valeur de D1 à la variable jourSelectionne
              '(D1 étant la cellule sur laquelle j'ai ma liste déroulante)
              
              Sheets(jourSelectionne).Activate 'tu actives la feuille du jour concerné
              'en partant du principe que tes onglets s'appellent exactement comme les valeurs de ta liste déroulante...
              ActiveSheet.Cells.Select 'tu sélectionnes le contenu de la feuille
              Selection.Copy Destination:=Sheets("quot").Range("A1") 'tu le copies dans la feuille quot
          End Sub
          


          C'est fait un peu rapidement mais ça devrait marcher. Sinon un fichier Excel qui fait plus d'1Go.. o_O
          • Partager sur Facebook
          • Partager sur Twitter

          Le Kansas City Shuffle.. c’est quand tout le monde regarde à gauche et que tu vas à droite.

          macro sur une liste déroulante excel

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown