Pour être sûr de bien comprendre, tu dis donc que si je fais une fonction vba qui a la place de indirect fait du
Public Function IndirectPerso( nm As String) As Variant
If Not ThisWorbooks.Names(nm).RefersToRange Is Nothing Then
IndirectPerso = ThisWorbooks.Names(nm).RefersToRange.value
Else
IndirectPerso = 0
End If
End Function
Et idem pour décaler :
Public Function DecalerPerso(rng As Range, ligne As Integer, colonne As Integer, plgLigne As Integer, plgColonne As Integer) As Range
Set DecalerPerso = rng.Offset(ligne, colonne).Resize(plgLigne, plgColonne)
End Function
Ces fonctions sont des exemples approximatives afin de justifier mes propos, sans test, à ne pas utiliser à la lettre.
J'aurais plus de recalcul intenpestif ?
Car je ne peux tout simplement pas utiliser de plage fixe.
Cela me paraît un peu simple comme solution mais je vais essayer et je redirais si cela marche.