VBA : liste déroulante avec plusieurs variables

Résolu
poulette17 Messages postés 11 Statut Membre -  
poulette17 Messages postés 11 Statut Membre -
Bonjour,

Je souhaite créer un tableau avec les phases d'un tournoi de tennis par exemple. Dans ce tableau je veux que ma case pour la demi-finale soit une liste déroulante avec les noms inscrits dans les cases 1/4 de finale. Mon problème se situe au niveau de "Formula1", dans la macro test que j'ai enregistré, j'avais Formula1:="=$B$4:$B$5" mais moi je veux pouvoir paramétrer la ligne et la colonne à souhait avec des variables (cf. ci-après)

Sub Tournoi()

Dim i As Integer 'pour ligne et colonne des cellules
Dim j As Integer

'faire liste 2nd tour colonne C
For i = 4 To 67 'ligne joueur 1 à 64
j = 3 'colonne C, 2nd tour

Range(Cells(i, j), Cells(i + 1, j)).Select 'cellules ou j'insère ma liste

With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Cells(i, j - 1):Cells(i + 1, j - 1)"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
i = i + 2 'pour passer au suivant
Next i
End Sub


Merci de votre aide (je n'ai rien trouvé malgré plusieurs forum traitant des listes déroulantes)

1 réponse

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Sub Tournoi()
    Dim MaPlage As Range
    Dim i As Integer, j As Integer
    j = 3
    For i = 4 To 66 Step 2
    Set MaPlage = Range(Cells(i, j), Cells(i + 1, j))
    With MaPlage.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
    Operator:=xlBetween, Formula1:="=" & MaPlage.Offset(0, -1).Address
    End With
    Next i
    End Sub


    A+
    0
    1. poulette17 Messages postés 11 Statut Membre
       
      Gyrus,

      merci beaucoup, cela fonctionne parfaitement.
      0