job75
XLDnaute Barbatruc
Bonjour le forum,
Grâce à ce fil :
https://www.excel-downloads.com/threads/avec-vlookup-recherchev-les-formats-sont-oublies.171464/
je me suis demandé comment déterminer en VBA les arguments d'une fonction Excel.
Que ces arguments soient des constantes ou des formules contenant elles-mêmes des arguments (fonctions imbriquées).
J'ai donc écrit cette fonction macro :
Voyez son utilisation dans le fichier joint avec RECHERCHEV (VLOOKUP).
A+
Grâce à ce fil :
https://www.excel-downloads.com/threads/avec-vlookup-recherchev-les-formats-sont-oublies.171464/
je me suis demandé comment déterminer en VBA les arguments d'une fonction Excel.
Que ces arguments soient des constantes ou des formules contenant elles-mêmes des arguments (fonctions imbriquées).
J'ai donc écrit cette fonction macro :
Code:
Function ARG$(cel As Range, ordre%) 'recherche des arguments
Dim F$, deb&, fin&, i&, txt$, n%
F = cel.Formula
F = Mid(F, InStr(F, "(") + 1, Len(F) - InStr(F, "(") - 1) & ","
deb = 1
fin = Len(F)
1 For i = deb To fin
If Mid(F, i, 1) = "," Then 'recherche des virgules
txt = Mid(F, deb, i - deb)
If Len(Replace(txt, "(", "")) = _
Len(Replace(txt, ")", "")) Then 'fermeture des parenthèses
n = n + 1
If n = ordre Then ARG = txt: Exit Function
deb = i + 1: GoTo 1
End If
End If
Next
End Function
A+