Liste déroulante

Résolu
papoux -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je n'arrive pas à ajouter plusieures cellules où je doits retrouver ma liste, Range n'autorise que 2 cellules et il m'en faut 3 !!!
voilà mon code :
Sub lolo()
With Range("B1").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=a1:a10"
End With
End Sub

merci pour votre aide ;)

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    J'ai rajouté des balises code dans ta demande (4e icone au-dessus de la zone de texte).
    Merci d'y penser la prochaine fois ;)

    Concernant ton souci, Range n'autorise que 2 cellules et il m'en faut 3 est incompréhensible. Dis nous exactement ce que tu cherches à faire.
    0
    1. papafoux Messages postés 2 Statut Membre
       
      merci de votre attention pour mon code ;)

      il faut que la tirétte de la liste apparesse dans la cellule exemple: "b1" et une autre en "b2" et une autre en "b3"
      ligne de code :
      With Range(Cells(1, 2), Cells(2, 2)).Validation
      ou
      With Range("b1,b2").Validation
      et en plus la deuxième cellule rabote un cellule dans la selection "a1:a10" elle afiche appartire de la cellule "a2" ??

      ps. je ne comprent pas (4e icone au-dessus de la zone de texte ??)
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bon...
    Et pourtant cela fonctionne :
    Sub lolo()
    With Range(Cells(1, 2), Cells(3, 2)).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=a1:a10"
    End With
    End Sub

    Par contre, la liste de validation change dans ce cas. Tu obtiens en B1 : A1:A10, en B2 : A2:A10, en B3 : A3:A10.
    Je suppose que tu ne veux pas cela.
    Donc, pour contourner ce petit problème, il suffit d'intégrer une minuscule boucle à ta macro.
    Ce qui nous donne :
    Sub lolobis()
    Dim i As Byte
    For i = 1 To 3
        With Range("B" & i).Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=a1:a10"
        End With
    Next
    End Sub 

    0
    1. papafoux Messages postés 2 Statut Membre
       
      merci beaucoup je ne te dis pas toute les fois que j'ai retourné le probléme,
      merci encore
      je n'aurais j'amais trouvé sans ton aide je n'ai pas ce niveau
      merci encore ;)
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Tout le monde a débuté un jour.
      De rien, et surtout n'hésite pas à revenir.
      A bientôt.
      0