Bonjour à tous,
Je me tourne vers vous car j'ai un léger problème et cela fait des heures que je cherche sans trouver.
Tout d'abord, mon problème pourrait être globalement solutionné par la fonction Filtre () que je n'ai pas car je suis pas sous excel 365 mais excel pro 2016.
J'ai lu quelque chose ou je devais rajouter un module en VBA, je l'ai fait, ca fonctionne à moitier, c'est à dire que ce n'est pas "dynamique" ça ne renvois pas autant de fois la valeur qu'il y a de correspondance dans le tableau... Ça me renvois une valeur sur les 3 que je voudrais voir s'afficher, et aléatoirement on dirait.
Mon problème n'est pas bien compliqué en le simplifiant :
Colonne A : nom de légumes donc "Patate", "courgette", "carotte" ect.. qui reviennent plusieurs fois, il peut y avoir 4 cellules "patate" dans ma colonne A
Colonne D : des chiffres
Ma première idée était :
Rechercher le mot "patate" en colonne A, et additionner tout les chiffres de la colonne D correspondant dans une seul formule. (c'est pour simplifier, la formule n'était pas des addition mais peut importe)
Je ne sais pas comment faire ça donc ma seconde idée était :
Au lieu d'une cellule avec l'addition, et bien que toutes les valeurs en face du mot patate s'affiche dans une autre colonne (F par exemple) (si 3 fois patate alors automatiquement 3 cellules se rempliraient) et ensuite faire la somme en bas de mes cellules. (En gros ce que fait la fonction filtre () )
Et donc pour le moment... Rien ne marche .
Si quelqu'un à une idée...
Voila le code que j'ai rentré dans ma VBA au cas ou :
Function FILTR(ByVal TDonn, ByVal TCond)
Dim LE&, LS&, C&
If TypeOf TDonn Is Range Then TDonn = TDonn.Value
If TypeOf TCond Is Range Then TCond = TCond.Value
For LE = 1 To UBound(TDonn, 1)
If TCond(LE, 1) Then
LS = LS + 1
For C = 1 To UBound(TDonn, 2)
TDonn(LS, C) = TDonn(LE, C)
Next C: End If: Next LE
Do While LS < UBound(TDonn, 1)
LS = LS + 1
For C = 1 To UBound(TDonn, 2)
TDonn(LS, C) = ""
Next C: Loop
FILTR = TDonn
End Function
Christophe