Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Liste de validation

  • Initiateur de la discussion Initiateur de la discussion Roll
  • 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 !

Roll

XLDnaute Occasionnel
Bonsoir à toutes et tous,

j'ai un problème avec une liste de validation.
Je voudrais que la liste ne propose plus les valeurs qui ont déjà été sélectionnées.
Le fichier ci-joint est plus clair.
Comment faire?
 

Pièces jointes

Re : Liste de validation

Bonjour, Roll, David.

Une solution en PJ proposée, je crois, par J BOISGONTIER :
En K2, à valider en matriciel (Ctrl+Maj+Entrée) et à recopier vers le bas, comme source de la liste de validation.
=SI(LIGNES($1:1)<=NBVAL(Points)-NBVAL(B$1:B$9);INDEX(Points;PETITE.VALEUR(SI((NB.SI(B$1:B$9;Points)=0);LIGNE(INDIRECT("1:"&LIGNES(Points))));LIGNES($1:1)));"")
 

Pièces jointes

Re : Liste de validation

Bonsoir Roll, salut Patrick, David 🙂

Avec cette macro dans le code de la feuille :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel As Range, tablo(), n&
For Each cel In [Points]
  If Application.CountIf([B:B], cel.Value) = 0 Then
    ReDim Preserve tablo(n)
    tablo(n) = cel.Value
    n = n + 1
  End If
Next
[Points].Offset(, 1).ClearContents
[J2].Resize(n) = Application.Transpose(tablo)
End Sub
Fichier joint.

A+
 

Pièces jointes

Re : Liste de validation

Bonjour,

les formules fonctionnent très bien pour la colonne B.
Par contre j'ai omis de préciser que je dois également mettre des points dans les colonnes c, d, e ...(total 19 colonnes), et là; cela ne marche plus.
Sorry pour cet oubli.

Job75,
ton code fonctionne bien (mais si j'ajoute 2 personnes et que l'ensemble des points est attribué) excel me renvoie un message d'erreur "run-time error 5" chaque fois que je clique dans une autre case.
 
Re : Liste de validation

Bonjour Roll, le fil,

Job75,
ton code fonctionne bien (mais si j'ajoute 2 personnes et que l'ensemble des points est attribué) excel me renvoie un message d'erreur "run-time error 5" chaque fois que je clique dans une autre case.

D'accord, dans ce cas il faut un test sur n pour la dernière ligne :

Code:
If n Then [J2].Resize(n) = Application.Transpose(tablo)
Fichier (2).

Edit : salut JB

A+
 

Pièces jointes

Re : Liste de validation

Re,

Avec des listes de validation dans plusieurs colonnes, remplacer [B:B] par ActiveCell.EntireColumn :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel As Range, tablo(), n&
For Each cel In [Points]
  If Application.CountIf(ActiveCell.EntireColumn, cel) = 0 Then
    ReDim Preserve tablo(n)
    tablo(n) = cel.Value
    n = n + 1
  End If
Next
[Points].Offset(, 1).ClearContents
If n Then [J2].Resize(n) = Application.Transpose(tablo)
End Sub
Bien noter qu'une seule liste Liste est utilisée pour toutes les validations.

Fichier (3).

A+
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
661
  • Résolu(e)
Microsoft 365 problème
Réponses
19
Affichages
916
Réponses
37
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…