XL 2013 [Résolu par CISCO] Modifier une liste déroulante

bellenm

XLDnaute Impliqué
Bonjour à tous les internautes,

Comment faut-il formulé une liste déroulante de manière a ce quelle élimine tous les noms se trouvant avant la dernière sélection !

J’explique car ce ne doit pas être simple a faire

Voici une liste de joueurs :

* A.C. GRÂCE *************************************
Hxxx Sxxxx / B 0
Cxxxxx Sxxxxx / C 2
Jxxxx Exx / C 2
Lxxxxxx Gxxxxxx / C 2
Dxxxx Fxxxxx / C 4
Mxxxxxx Vxxxx / D 0
Vxxxxx Cxxxx / D 0
Bxxx Axxxx / D 2
Cxxxx Fxxxx / D 2
Dxxx Bxxxxxxx / D 4
Gxxxxx M-Pxxxx / D 4
Lxxxx Exxxx / D 4
Fxxxxx Fxxxx / D 6
Kxxxx J-Mxxx / D 6
Bxxxxx Mxxx / E 0

Voici des noms qui sont trier, oui mais pas par ordre alphabétique mais par classement : dans une autre feuille Les nom sont en colonne « B » et la colonne « C » indique le classement

La syntaxe est toujours la même LE NOM[un espace]/[un espace]A[soit deux chiffres ou un espace plus un chiffre].

La liste des noms arrive déjà trier d’une autre feuille après avoir choisis un club. « DONNEES LIS »

En somme si je choisis un joueur C 2 sur la liste sur la cellule suivante ne pourrait apparaitre que les autres C 2, C 4, D 0 etc. mais des classement plus haut comme C0, B 6, B 4, B2, B0, A10 etc. devraient disparaitre !

Ici le B 0 ne devrait plus être visible dans la liste des joueurs sélectionnable.
1er joueur : Jxxxx Exxxx / C 2
2ème joueurs : Dxxx Fxxxx / C 4
3ème joueurs : Hxxxx Sxxx / B 0
Joueur double : Cxxxxx Sxxxxx / C 2
Capitaine:

ICI le C 4 est en rouge car il signale une erreur de composition en effet le « B 0 » ne pouvait pas être aligné comme troisième joueurs !

Ci-joint en exemple le fichier avec les onglets nécessaire.

D’avance merci si vous trouver une solution a ce problème.
 

Pièces jointes

  • marc201608.xlsm
    721.2 KB · Affichages: 87

CISCO

XLDnaute Barbatruc
Bonsoir

Pas évident... En colonne T et U, ce sont presque les mêmes formules matricielles que précédemment, sauf qu'il y a
Code:
(NB.SI(précédentclub;joueursbis)=0)
au lieu de
Code:
(NB.SI(précédentbis;joueursbis)=0)

Pour que cela fonctionne, il faut définir dans le gestionnaire de noms
* débutclub
Code:
=MAX(SI((MOD(LIGNE(précédent7col);12)=7)*(précédent7col<>DECALER(précédentbis;;;1));LIGNE(précédent7col));-5)+12
qui donne le n° de la ligne contenant le dernier nom du club en cours en remontant à partir de la cellule active (donc soit 7, soit le premier correspondant au groupe de tableaux successifs du club en cours (On se comprend, j'espère !!!))

* précédent7col
Code:
=DECALER(CA;7-LIGNE(CA);;LIGNE(CA)-7;)
qui donne la plage au dessus de la cellule active commençant en ligne 7 composée d'une seule colonne (un peu comme précédent7, mais cette dernière plage allait de la colonne C à la colonne I)

* et précédentclub
Code:
=DECALER(CA;débutclub-LIGNE(CA);;LIGNE(CA)-débutclub;)
qui donne la plage contenant les membres du club en cours déjà sélectionnés, commençant à la ligne débutclub (donc incluse dans précédent7col)

J'ai l'impression que cela fonctionne (dans les colonnes C et H (pour avoir un système de sélection différent pour cette dernière, il faudrait soit complexifier davantage les formules, soit utiliser d'autres colonnes intermédiaires donnant les listes déroulantes, soit passer par du VBA)), mais tu as tout intérêt à vérifier très soigneusement cela... Bon courage.

@ plus

P.S : Cf. mes commentaires dans H1 et H2
 

Pièces jointes

  • marc201608neuf.xlsm
    762.4 KB · Affichages: 43
Dernière édition:

bellenm

XLDnaute Impliqué
Bonsoir CISCO,

Tu es un chef là j'ai la cerise sur le gâteau ;) .

Tout fonctionne super bien je suis loin d'avoir tes connaissance dans ce domaine :rolleyes:, MAIS te remercie pour la patience que tu as eu avec moi.

Maintenant je vais être super fier de pouvoir montrer le super programme ainsi construit :p.

PS: il reste cependant une chose que je ne suis pas parvenus à modifier dans un post précédent avec le "CA" pour le copier coller pour les tableaux est-ce sur la feuille "RESULTATS" celle qui reçoit les coller qu'il faut mettre
Pour ce qui est de CA, c'est normal à cause de la macro évènementielle Worksheet_SelectionChange que tu as dans Feuil8. Tu dois pouvoir corriger ce défaut avec une ligne du style
If Activesheet.Name="CINT" then ActiveCell.Name = "CA" 'nomme la cellule active

Bon l'erreur vient de moi puisque je copie de "RESULTATS bis" vers "RESULTATS".
J'ai recopier la formule dans les deux worksheet mais ça n'a rien changer:
Private Sub Worksheet_SelectionChange(ByVal target As Range)
'ActiveCell.Name = "CA" 'nomme la cellule active
If ActiveSheet.Name = "RESULTATS" Then ActiveCell.Name = "CA" 'nomme la cellule active
End Sub
j'ai juste modifier "CINT" par "RESULTATS" supposant que c'est de la feuille qu'ont parle dans la formule!

Après ça je laisse le fichier tel quel car trop super.

Marc
 

Discussions similaires

Statistiques des forums

Discussions
312 240
Messages
2 086 514
Membres
103 239
dernier inscrit
wari