Macro et liste déroulante de choix

Résolu
rapha1186 Messages postés 4 Statut Membre -  
rapha1186 Messages postés 4 Statut Membre -
Bonjour,

C'est tout simple, je voudrais que la macro change la ligne de référence dans ma liste déroulante de choix. Plus précisemment, j'aimerais que lorsque je clique sur le bouton, auquel la macro est affectée, cela fasse descendre d'une ligne ma référence dans ma liste déroulante de choix.

Si quelqu'un peut m'aider...

7 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
    voici une proposition
    https://www.cjoint.com/c/CGhsPl6ON3l
    Vu que l'action doit être exécutée lors de l'appui sur un bouton, j'en conclu que la liste déroulante est soit un contrôle de formulaire, soit une validation de données.

    voici donc les 2 cas de figures, libre à vous de l'adapter à votre appli.

    Nota: quand on arrive en fin de liste, évidemment au remonte en début de liste

    bonne réception

    cdlt
    0
  2. rapha1186
     
    Bonjour,

    Désolé de ne répondre que maintenant mais j'étais en vacences.
    Mon problème est quasiment résolu grâce à vous. En fait si je n'arrive pas à adapter votre macro c'est parce que les données de ma liste déroulante de choix ne sont pas sur la même feuille du classeur. Vous serez t'il possible de m'éclairer une nouvelle fois? Je ne sais pas si c'est très claire, n'hésitez pas à me poser des questions. Je vous donne une petite précision, dans mon cas, c'est validation de données.

    Merci.
    Raphaël
    0
  3. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
    il suffit de donner un nom à la liste qui se trouve sur l'autre feuille.
    pour rester conforme au fichier que je vous ai fourni, il suffit de la nommer "Liste", mais vous pouvez mettre le nom que vous voulez, dans ce cas, il faudra remplacer le mot Liste dans la macro

    Sub SelectionSuivante2()
        On Error Resume Next
        Liste = Range("A12:A15").Address
        Validation = Range("E3").Value
        Set c = Range(Liste).Find(Validation, LookIn:=xlValues)
        If c.Offset(1, 0).Value = "" Then
            Range("E3").Value = Range("A12").Value
        Else
            Range("E3").Value = c.Offset(1, 0).Value
        End If
    End Sub


    Au cas ou vous ne sauriez pas créer la liste, voici comment procéder
    sur la feuille de la liste, sélectionnez toute la liste,
    dans la zone de nom, (en haut à gauche de la barre de formule), tapez le nom de votre choix que vous voulez attribuer à la liste. validez par "Entrée" - la nouvelle liste est créée.
    pour la validation de données, dans les options, sélectionnez "liste"
    dans la zone source, tapez =liste (ou le nom que vous aurez choisi).
    en espérant avoir été assez clair.
    bonne soirée
    cdlt
    0
  4. rapha1186 Messages postés 4 Statut Membre
     
    Re,

    Ce n'est pas exactement ça le problème... Dans votre macro on fait toujours référence aux cellules A12 à A15 de la feuille sur laquelle il y a le bouton mais si ces cellules sont sur une autre feuille cela ne fonctionne plus. Pour faire simple j'aimerais que sur une feuille il n'y ait que le bouton et la liste déroulante et tout le reste sur une autre feuille du même classeur.

    Raphaël
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Exemple
    la liste est sur la feuille 2, de la cellule A1 à A100

    Liste = sheets("Feuil2").Range("A1:A100").Address

    mettez le nom de votre feuille, et les adresse de départ et de fin de votre liste, tout simplement

    essayez
    0
  7. rapha1186 Messages postés 4 Statut Membre
     
    RE,

    J'ai beau essayé je ne trouve pas d'où viens le problème.
    Regardez sur le document: https://www.cjoint.com/?3GqsTtDucm5
    peut-être verrez vous d'où vient le problème.
    En tout cas merci de prendre le temps de me répondre.
    0
  8. Frenchie83 Messages postés 2254 Statut Membre 339
     
    et cette fois-ci

    Sub SelectionSuivante2()
    On Error Resume Next
    Liste = Sheets("Feuil2").Range("A5:A8").Address
    Validation = Range("E3").Value
    Set c = Sheets("Feuil2").Range(Liste).Find(Validation, LookIn:=xlValues)
    If c.Offset(1, 0).Value = "" Then
    Range("E3").Value = Sheets("Feuil2").Range("A5").Value
    Else
    Range("E3").Value = c.Offset(1, 0).Value
    End If
    End Sub

    A+
    0
    1. rapha1186 Messages postés 4 Statut Membre
       
      Nickel merci,

      A+
      0