Bonjour à toutes et à tous, je ne parviens pas à étendre sur plusieurs lignes la macro suivante:
par exemple : Si la cellule C12 contient "S" je voudrais que B12 ne propose que la liste nommée S, tandis que si c'est un "U" seulement la liste U, etc...
Et appliquer cela sur un nombre de X ligne.
X = 2
Do While X < 10
If Cells(X, 3) = "S" Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
Formula1:="=(IF(BX<>"""",OFFSET(S,MATCH(BX&""*"",S,0)-1,,COUNTIF(S,BX&""*"")),S))" '_Si je met B2 dans la formule, autofill utilise que le résultat de C2.
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = False
End With
ElseIf Cells(2, 3) = "U" Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
Formula1:="=(IF(BX<>"""",OFFSET(U,MATCH(BX&""*"",U,0)-1,,COUNTIF(U,BX&""*"")),U))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = False
End With
Selection.AutoFill Destination:=Range("B2:B10"), Type:=xlFillDefault
End If
X=X+1
Loop
Par avance merci pour vos réponses
par exemple : Si la cellule C12 contient "S" je voudrais que B12 ne propose que la liste nommée S, tandis que si c'est un "U" seulement la liste U, etc...
Et appliquer cela sur un nombre de X ligne.
X = 2
Do While X < 10
If Cells(X, 3) = "S" Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
Formula1:="=(IF(BX<>"""",OFFSET(S,MATCH(BX&""*"",S,0)-1,,COUNTIF(S,BX&""*"")),S))" '_Si je met B2 dans la formule, autofill utilise que le résultat de C2.
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = False
End With
ElseIf Cells(2, 3) = "U" Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
Formula1:="=(IF(BX<>"""",OFFSET(U,MATCH(BX&""*"",U,0)-1,,COUNTIF(U,BX&""*"")),U))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = False
End With
Selection.AutoFill Destination:=Range("B2:B10"), Type:=xlFillDefault
End If
X=X+1
Loop
Par avance merci pour vos réponses
Dernière édition: