Liste de validation en fonction de la même liste

  • Initiateur de la discussion Initiateur de la discussion natorp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

natorp

XLDnaute Barbatruc
Bjr à toutes et tous

J'aimerais une liste de validation qui serait fonction d'un choix fait dans une autre cellule sur la même liste

En D15 on choisit un joueur dans une liste et en D16 on choisit un autre joueur mais la liste ne tient plus compte du joueur choisi plus haut.

Voir le fichier joint

Merci de votre attention, cordialement, Gérard
 

Pièces jointes

Re : Liste de validation en fonction de la même liste

Bonjour Gérard,

Une solution VBA :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range, t$
If Target.Address <> "$D$15" Then Exit Sub
For Each cel In [Liste]
  If cel <> Target Then t = t & "," & cel
Next
t = Mid(t, 2)
With Target.Offset(1).Validation
  .Delete
  If Target <> "" Then .Add xlValidateList, Formula1:=t
End With
End Sub
Fonctionne si le texte t qui définit la liste ne comporte pas plus de 255 (ou 256 ?) caractères.

Autrement il faut passer par une plage auxiliaire avec formule (on verra ça).

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Liste de validation en fonction de la même liste

Re,

Donc maintenant la solution par formule.

Formule matricielle en D2 à tirer vers le bas :

Code:
=INDEX(Liste;PETITE.VALEUR(SI(Liste<>E$15;LIGNE(Liste)-1);LIGNES(D$2:D2)))
Formule de validation en E16 :

Code:
=DECALER($D$1;1;;EQUIV("zzz";$D:$D)-1)
Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Liste de validation en fonction de la même liste

Merci job75

tjrs aussi efficace, je vais choisir la première solution, je ne pense avoir de nom de joueur à plus de 255 caractères...

Et encore merci, bonne journée, Gérard
 
Re : Liste de validation en fonction de la même liste

Bonsoir Gérard,

Puisque c'est le VBA qui vous intéresse :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range, t$
For Each cel In [Liste1]
  If cel <> [I2] And cel <> [I3] _
    Then t = t & "," & cel
Next
t = Mid(t, 2)
With [I4].Validation
  .Delete
  .Add xlValidateList, Formula1:=t
End With
End Sub
Le plus simple est de se passer de Target.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
278
Réponses
15
Affichages
416
Réponses
72
Affichages
1 K
Retour