Pb de définition de plage de valeurs pour une liste

Bonjour à tous.

Dans le fichier suivant, je cherche à remplir l'onglet 14juinprog.

en B3, on sélectionne le tableau (pour le moment seuls SM et SD sont définis).

en C3 et C4 on a alors la liste des joueurs de chaque tableau (enfin, on devrait)

Pour le tableau SD, pas de problême la liste est deéinie par les valeurs existantes, le probleme dans ce cas est que si l'on rajoute des joueurs, la liste n'évolue pas.

Pour le talbeau SM, j'ai essayé de définir la liste à l'aide de la formule décaler, mais dans le cas de ce tableau, la liste des joueurs reste désepérement vide.

Je ne vous pas mon erreur.

l'argument NBVAL(b:b) renvoie bien la valeur désirée.

Merci de votre aide.

20tctn.xlsm (1.00 Mo)

Bonjour tonillo, bonjour le forum,

Pour le tableau SD, pas de problème la liste est definie par les valeurs existantes, le problème dans ce cas est que si l'on rajoute des joueurs, la liste n'évolue pas.

Il faudrait passer par une macro pour que la plage nommée SD s'allonge automatiquement en ajoutant des noms.

Joseph

Bonjour tonillo,

Vous allez chercher la sixième colonne d'une matrice qui n'en a qu'une (SD se limite à la colonne A en ne renvoie donc pas F)

Bonjour tonillo, bonjour le forum,

Si tu veux continuer avec les champs nommées et les dynamiser.

En VBE, sous la feuille Dames, colle :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    DerLig = Worksheets("Dames").Range("B" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Names("SD").Delete  '  changer le nom ici, et sur la ligne suivante, au besoin
    ActiveWorkbook.Names.Add Name:="SD", RefersToR1C1:="=Dames!R2C1:R" & DerLig & "C1"
End If
End Sub

Et sous la feuille Messieurs, colle

Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    DerLig = Worksheets("Messieurs").Range("B" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Names("SM").Delete  '  changer le nom ici, et sur la ligne suivante, au besoin
    ActiveWorkbook.Names.Add Name:="SM", RefersToR1C1:="=Messieurs!R2C1:R" & DerLig & "C1"
End If
End Sub

À chaque fois que tu ajouteras un nom dans la colonne B, le champ nommé sera adapté.

Joseph

njhub a écrit :

Bonjour tonillo,

Vous allez chercher la sixième colonne d'une matrice qui n'en a qu'une (SD se limite à la colonne A en ne renvoie donc pas F)

la matrice nommée SD ne renvoie que les noms des joueurs tandis que la matrice "matrice_SD est la matrice qui contient les infos (classement, club, tableau optionnel,...).

Je vais essayer les codes en VBE.

Merci de votre aide.

Bonjour,

erreur dans la formule de noms dynamiques : =DECALER(Dames!$A$2;6;NBVAL(Dames!$A:$A-1))

Le -1 doit être extérieur à la parenthèse :

=DECALER(Dames!$A$2;6;NBVAL(Dames!$A:$A)-1)

idem pour matrice_SM, et SD n'est pas dynamique.

eric

Bonjour Eriic, merci pour la remontée d'erreur.

Je cherche justement à rendre dynamique ces 2 listes SD et SM.

J'ai essayé de copier le code VBA fourni ci dessus, mais ca ne fonctionne pas.

je l'ai copie dans this workbook.

Merci de votre aide.

macro liste dynamique

Edit: je galère vraiment, en fait ce que je veux faire:

2 listes de joueurs :

SD:listes des joueurs du tableau simple dames qui se grandirait en fonction des inscrits

SM:listes des joueurs du tableau simple messieurs qui se grandirait en fonction des inscrits

2 matrices de données:

matrice_SD: dans laquelle j'irai rechercher le classement des joueuses, leurs clubs et leurs tableaux supplémentaires éventuel

matrice_SM: dans laquelle j'irai rechercher le classement des joueurs, leurs clubs et leurs tableaux supplémentaires éventuel

les noms de listes et matrices se ressemblent car j'utilise la fonction indirect avec le nom du tableau pour faire une liste en cascade.

Merci d'avance.

mon fichier actuel :

12hmt2018.xlsm (151.97 Ko)

Bonjour tonillo, bonjour le fil, bonjour le forum,

Ouupppssss! Une coquille dans mon code qui ne fonctionnait pas si le nom n'existait pas déjà.

J'ai corrigé le code de mon post précédent.

Aussi, il faut ajouter ou modifier un nom dans la colonne B de chacune des feuilles Dames et Messieurs afin que le code s'active une première fois pour mettre à jour les champs nommées.

Joseph

Tu as déjà des noms dynamiques corrects, pourquoi tu ne prends pas modèle dessus pour corriger les autres ???

eriiic a écrit :

Tu as déjà des noms dynamiques corrects, pourquoi tu ne prends pas modèle dessus pour corriger les autres ???

parce que ca ne fonctionne pas.

dans le fiichier posté,

Quand dans la feuille 14juinprog tu mets SM en B3, alors en C3 et C4, pas de pb ca fonctionne mais la liste SM n'est pas dynamique.

Si tu mets SD en B3, alors en C3 et C4 je ne peux pas choisir le joueur.

il doit donc y avoir un pb dans la liste nommée SD mais je ne vois pas d'ou cela peut venir.

Merci d'avance.

edit: quand je copie la formule du nom SM dans une case du classeur, j'obtiens un seul résultat alors que je m'attends à une matrice. il doit y avoir quelque chose que je fais mal et je ne comprends pas quoi.

Merci.

Bonjour tonillo, bonjour le fil, bonjour le forum,

Voir si ce fichier convient pour la partie des colonnes B et C.

Joseph

P.S. Le fichier joint a été modifié.

Bonjour tonillo, bonjour le fil, bonjour le forum,

Dans le gestionnaire des noms : matrice_SD=Dames!$A$2:$G$999

Dans la feuille 14 JUIN PROG, colonne D,

D3=SI(ESTVIDE(C3);"";RECHERCHEV(C3;INDIRECT("matrice_"&B3);6;FAUX))

Mais D4 doit aussi pointer sur C3 à cause des cellules fusionnées

D4=SI(ESTVIDE(C3);"";RECHERCHEV(C3;INDIRECT("matrice_"&B3);6;FAUX))

Si les deux matrices _SD et _SM sont triés par ordre alphabétique sur la colonne B et C, ça fonctionne.

Voir le fichier que j'ai joint, il a été modifié.

Joseph

Bonjour tonillo, bonjour le fil, bonjour le forum,

J'ai modifié mon dernier post et le fichier joint 2 posts plus haut.

Joseph

Impeccable merci Joseph.

Concernant la cellule fusionnée, oui, je vais faire mes validations de données 1 à 1, je n'arrive pas a gérer la fusion de la cellule autrement.

Merci.

Je ne comprends toutefois pas pourquoi ca ne fonctionnait pas avec mes listes créées avec la fonction decaler.....

Bonjour tonillo, bonjour le fil, bonjour le forum,

...

Je ne comprends toutefois pas pourquoi ça ne fonctionnait pas avec mes listes créées avec la fonction decaler

La fonction décaler nécessite toute la plage que tu veux interroger et non seulement la colonne de la recherche.

Donc de A à G sur les feuilles Dames et Messieurs.

Joseph

Rechercher des sujets similaires à "definition plage valeurs liste"