Optimisation fonction VBA
Le
j-pascal
Bonjour,
J'ai 52 onglets nommés "S1" "S52"
Je souhaite que les formules de l'onglet "n" fassent référence à
l'onglet "n-1".
(Supposons que "ROP" = "Référence 0nglet Précédent")
J'ai la fonction :
'
Function ROP()
Application.Volatile
ROP = "S" & Right(SheetName(), Len(SheetName()) - 1) - 1
End Function
'
Et dans ma feuille, j'insère la formule : "=INDIRECT(ROP()&"!A2")"
Comment puis-je optimiser la fonction pour que ma formule de feuille
fasse seulement référence à la cellule concernée ?
(ie) "function Toto ()" qui permet d'avoir la formule =Toto(A2)
Un grand merci d'avance pour vos lumières,
JP
J'ai 52 onglets nommés "S1" "S52"
Je souhaite que les formules de l'onglet "n" fassent référence à
l'onglet "n-1".
(Supposons que "ROP" = "Référence 0nglet Précédent")
J'ai la fonction :
'
Function ROP()
Application.Volatile
ROP = "S" & Right(SheetName(), Len(SheetName()) - 1) - 1
End Function
'
Et dans ma feuille, j'insère la formule : "=INDIRECT(ROP()&"!A2")"
Comment puis-je optimiser la fonction pour que ma formule de feuille
fasse seulement référence à la cellule concernée ?
(ie) "function Toto ()" qui permet d'avoir la formule =Toto(A2)
Un grand merci d'avance pour vos lumières,
JP

Poser une question


Onglets nommés S01,S02,..:
=INDIRECT("'S"&TEXTE(DROITE(CELLULE("nomfichier";$A$1);2)-1;"00")&"'!
A2")
http://boisgontierjacques.free.fr/p...tm#OngPrec
JB
http://boisgontierjacques.free.fr
On 7 avr, 10:13, j-pascal
Merci pour cette proposition.
Hormis qu'on ne passe pas par une macro (Function), je me demande si
cette formule est plus "lisible" dans la feuille (ce que je cherchais à
obtenir), parce que plus longue...
Peut-être que ta proposition est moins consommatrice de ressources
mémoire ?
J'ai bien noté que si la saisie des n° de semaine est à 2 chiffres, je
peux encore simplifier ma "function".
@+ ?
JP
=Rop("A2")
Function ROP(c)
Application.Volatile
onglet = Application.Caller.Parent.Name
ROP = Sheets("S" & Format(Right(onglet, 2) - 1, "00")).Range(c)
End Function
JB
On 7 avr, 14:22, j-pascal