Re Patrick,
Déjà merci pour l'aide que tu m'apportes :
On peut s'y prendre de cette manière aussi:
Edit la fonction corrigé :Code:
1
2
3
4
5
6
7
8
9
10 Sub TestEntete() For Each L In ActiveSheet.ListObjects Debug.Print L.Name For Each LRow In L.ListRows(1).Range 'Debug.Print LRow.Column Debug.Print LRow.Column - L.Range.Column + 1 Debug.Print L.HeaderRowRange(LRow.Column - L.Range.Column + 1) Next Next End Sub
Résultat :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Function AdrTab(Sh_Name$, Nom_Tab$, Formule$, LRow As Range, Coll As Collection, Optional FT As Boolean) As String Dim Entete$ For Each C In Coll Param = Split(C, "|"): T = Param(0): F = Param(1): A = Param(2) If T = "" And F <> Sh_Name Then Formule = Formule Else If FT And T = Nom_Tab Then Tbl = "" Else If F = Sh_Name And T = "" Then T = Nom_Tab Else Tbl = T Entete = Sheets(F).ListObjects(T).HeaderRowRange(Range(A).Column - Sheets(F).ListObjects(T).Range.Column + 1) Adr_EnteteTab = Tbl & "[@" & Entete & "]" Formule = Replace(Formule, A, Adr_EnteteTab) End If Next AdrTab = Formule End Function
Citation:
Feuil4
Tableau3
-------------------------
-------------------------
=B6*C6 - $D$6
=[@Chiffre]*[@Pourcentage]
-------------------------
ou encore
Feuil4
Tableau3
-------------------------
-------------------------
=E15*F15 - $G$15
=[@Chiffre]*[@Pourcentage]
-------------------------