XL 2013 Alimenter une colonne avec toutes les données ayant la même date - rechercheV++

MysterPb

XLDnaute Nouveau
Bonjour à tous,

Ce n'est pas hyper simple à expliquer. j'aimerai faire une rechercheV mais qui ne ressort pas uniquement la 1ère valeur trouvée mais toutes les valeurs disponible.

Le mieux est d'expliquer par un exemple que vous trouverez en PJ.

pouvez-vous me guider ?

j'aimerai passer par le VBA mais je ne suis pas super à l'aise avec. et il y a peut-être une formule plus simple, une sorte de rechercheV ++ :)

merci de votre aide précieuse
 

Pièces jointes

  • TEST_Auto2.xlsm
    10.3 KB · Affichages: 8

Dranreb

XLDnaute Barbatruc
Bonjour
Ce serait une fonction matricielle alors ?
Dans un module standard :
VB:
Option Explicit
Function Ressortir(ByVal Quoi, ByVal VClé, ByVal Dans)
   Dim RngAC As Range, LDon As Long, LRés As Long, TRés()
   If TypeOf Quoi Is Range Then Quoi = Quoi.Value
   If TypeOf VClé Is Range Then VClé = VClé.Value
   If TypeOf Dans Is Range Then Dans = Dans.Value
   Set RngAC = Application.Caller
   ReDim TRés(1 To RngAC.Rows.Count, 1 To 1)
   For LDon = 1 To UBound(Dans, 1)
      If Dans(LDon, 1) = VClé Then LRés = LRés + 1: TRés(LRés, 1) = Quoi(LDon, 1)
      Next LDon
   While LRés < UBound(TRés, 1): LRés = LRés + 1: TRés(LRés, 1) = "": Wend
   Ressortir = TRés
   End Function
En C4:C9 validé par Ctrl+Maj+Entrée :
Code:
=Ressortir(présence!$C$2:$C$26;B4;présence!$B$2:$B$26)
Puis copiez collez cette formule dans les paquets en dessous.
 
Dernière édition:

MysterPb

XLDnaute Nouveau
Merci pour ton retour rapide !
Cependant, je ne trouve pas le résultat escompté. je t'ai remis mon fichier complété en PJ.

peux-tu me dire si j'ai fait quelques chose de travers ?

merci à toi
 

Pièces jointes

  • TEST_Auto2.xlsm
    17.5 KB · Affichages: 10

Dranreb

XLDnaute Barbatruc
VB:
Function Ressortir(ByVal Quoi, ByVal VClé, ByVal Dans)
   Dim RngAC As Range, LDon As Long, LRés As Long, TRés()
   If TypeOf Quoi Is Range Then Quoi = Quoi.Value
   If TypeOf VClé Is Range Then VClé = VClé.Value
   If TypeOf Dans Is Range Then Dans = Dans.Value
   Set RngAC = Application.Caller ' Plage d'où est invoquée la fonction.
   ReDim TRés(1 To RngAC.Rows.Count, 1 To 1) ' Réserve le nombre de lignes de cette plage × 1 seule colonne au tableau résultant.
   For LDon = 1 To UBound(Dans, 1) ' Pour LDon = 1 jusqu'au nombre de ligne de Dans
      If Dans(LDon, 1) = VClé Then LRés = LRés + 1: TRés(LRés, 1) = Quoi(LDon, 1)
      Next LDon
   While LRés < UBound(TRés, 1): LRés = LRés + 1: TRés(LRés, 1) = "": Wend ' Complète d'une chaîne vide les postes non renseignés (Sinon Excel assume 0)
   Ressortir = TRés ' Renvoie le tableau dynamique résultant.
   End Function
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T