Selection 1ère occurence d'une Validation de données en vba
Bonjour,
J'aimerais savoir si il est possible après avoir fait une validation de données de selectionner par vba la 1ère occurence de cette validation ?
Je ne sais pas si c'est très clair ce que je dis alors j'essaye d'expliquer le pourquoi : je selectionne une plage et je fais une validation avec une plage de cellule nommée :
Code:
1 2 3 4 5 6
| FeuilSuivi.Range("B5:B106").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Categories"
End With |
Ensuite il faut que je fasse une 2ème validation par rapport au contenu de ma cellule d'avant :
Code:
1 2 3 4 5 6
| FeuilSuivi.Range("C5:C106").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=INDIRECT(B5)"
End With |
Ma validation fonctionne si j'ai une valeur en B5 c'est pour cela qu'avant ma 2ème validation je voudrais mettre la 1ère occurence de la liste en B5.
Autre alternative, attribuer à la cellule la première valeur valide.
Code:
1 2 3 4 5 6 7 8 9
| 'Lors de la sélection de la cellule attribuée d'une plage à validation
Target.Validation.Delete
' Target.Offset(0, -1)=nom de la plage nommée au cas ou la cellule décalée d'une colonne porte le nom de la plage
Target.Validation _
.Add Type:=xlValidateList, Formula1:="=" & Target.Offset(0, -1)
If Target = "" Then
Target = Sheets(Feuille de la plage nommée).Range(Target.Offset(0, -1)).Cells(1, 1)
' ou Target = Sheets(Feuille de la plage nommée).Range(Target.Offset(0, -1))(1)
End If |