Bonjour,

Je cherche à créer une fonction pour récupérer le numéro de la n ième ligne visible après l'utilisation d'un filtre sur un tableau structuré.
Je réussi avec cette sub à récupérer l'information que je cherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Ligne_tercile()
 
Dim D_Range As Range
Dim ligne As Range
Dim liste_Ligne As New Collection
 
Set D_Range = Range("tableau1[#data]")
 
For Each ligne In D_Range.SpecialCells(xlCellTypeVisible).Rows
liste_Ligne.Add ligne.Row
 
Next
i = 5
Ligne_Tercile_Num = liste_Ligne(i)
Range("B21") = Ligne_Tercile_Num
 
End Sub
Par contre, lorsque je transforme cette sub en fonction, la fonction me retourne la nième ligne du tableau s'en tenir compte du fait quelle soit visible ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function Ligne_tercile_2(i As Long)
 
Dim D_Range As Range
Dim ligne As Range
Dim liste_Ligne As New Collection
 
Set D_Range = Range("tableau1[#data]")
 
For Each ligne In D_Range.SpecialCells(xlCellTypeVisible).Rows
liste_Ligne.Add ligne.Row
 
Next
 
Ligne_tercile_2 = liste_Ligne(i)
 
End Function
Est-ce normal que la méthode specialcells ne fonctionne pas dans une fonction ou ma synthaxe n'est pas bonne?
Merci de votre aide car je tourne en rond