Bonjour à tous
Débutant en Excel/VBA je cherchais un équivalent à la fonction filtre() de Google Sheet.
"L'équivalent" que j'ai pu trouvé est la formule
=SI(LIGNE()-1>NB.SI($A:$A;D$1);"";INDEX($B:$B;PETITE.VALEUR(SI($A:$A=D$1;LIGNE(A:A);"");LIGNE()-1)))
J'ai donc préféré faire une fonction perso en VBA mais j'aimerais avoir vos avis :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Public Function JGFiltre(tableau, Donnée, Colonne) As Variant
Dim compteur As Integer
compteur = 1
Dim i As Integer
Dim MonTableau
Dim TableauSortie()
MonTableau = tableau
For i = 1 To UBound(MonTableau, 1)
ReDim Preserve TableauSortie(1 To compteur + 1)
If MonTableau(i, 1) = Donnée Then
TableauSortie(compteur) = MonTableau(i, Colonne)
compteur = compteur + 1
End If
Next
JGFiltre = WorksheetFunction.Transpose(TableauSortie)
End Function |
donnant, pour l'exemple, ceci :
Partager