XL 2013 Résultat d'une liste déroulante suivant tableau

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 !

Bonjour.
Dans un module standard :
VB:
Option Explicit

Function Résult(ByVal RngTit As Range, ByVal RngTab As Range, ByVal L As Long) ' As Range)
Dim TTit(), TLig(), C As Long, TRés(1 To 6, 1 To 1)
TTit = RngTit.Value
TLig = RngTab.Rows(L).Value
L = 0
For C = 1 To 6
   If TLig(1, C) <> "" Then L = L + 1: TRés(L, 1) = TTit(1, C)
   Next C
While L < 6: L = L + 1: TRés(L, 1) = "": Wend
Résult = TRés
End Function
En E22:E25 validé par Ctrl+Maj+Entrée :
Code:
=Résult($E$2:$J$2;$E$4:$J$16;$A$1)
 
Merci à vous 2....cela marche très bien......

J'en profite pour vous demander quelquechose de similaire.......je pense aussi en matricielle.....

Le fichier- ci-dessous doit recenser un nom d'équipe dès qu'un joueur se trouve dans sa liste....mais il peut avoir plusieurs équipes.....


Merci à vous ........
 

Pièces jointes

Re,

Formule matricielle en Résultats!D7 :
Code:
=SIERREUR(INDEX(Tableau!$A:$A;PETITE.VALEUR(SI(Tableau!$F$7:$P$21=$C7;LIGNE(Tableau!$F$7:$P$21));COLONNES($D7:D7)));"")
A tirer vers le bas et vers la droite tant que la colonne n'est pas vide.

Dans la feuille "Tableau" l'insertion de la colonne auxiliaire A (à masquer) est nécessaire.

Fichier joint.

A+
 

Pièces jointes

Job75....en visu rapide.......... J'ai oublié quelquechose d'important :

Il ne faut pas qu'une même équipe se marque plusieurs fois sur une même ligne (si c'est le cas) !!🙁😉
En gros une ligne doit comporter le nom de ou des équipes du joueur...mais juste une seule fois....
 
Bonjour alain.raphael, Bernard,

On peut bien sûr utiliser une fonction VBA (plus de colonne auxiliaire dans la 1ère feuille) :
Code:
Function Equipe$(x$, r As Range, ordre)
Set r = Intersect(r, r.Parent.UsedRange)
If r Is Nothing Then Exit Function
Dim t, ub%, i&, y$, j%, n, k&
t = r 'matrice, plus rapide
ub = UBound(t, 2)
For i = 1 To UBound(t)
    If t(i, 1) <> "" Then y = t(i, 1)
    For j = 5 To ub '5 => numéro de colonne modifiable
        If t(i, j) = x Then
            n = n + 1
            If n = ordre Then Equipe = y: Exit Function
            For k = i + 1 To ub
                If t(k, 1) <> "" Then Exit For
            Next k
            i = k - 1
            Exit For
        End If
Next j, i
End Function
On suppose qu'il n'y a pas de doublon en colonne A de la 1ère feuille.

Fichier joint.

Le recalcul des 45 formules du tableau des résultats prend 5,5 millièmes de seconde.

Avec les formules matricielles du post #10 cela prend 2,2 millièmes de secondes...

A+
 

Pièces jointes

Dernière édition:
- 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

Retour