Recherche des arguments d'une fonction Excel par VBA

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 :

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
Voyez son utilisation dans le fichier joint avec RECHERCHEV (VLOOKUP).

A+
 

Pièces jointes

  • Recherche des arguments(1).xls
    43.5 KB · Affichages: 70

job75

XLDnaute Barbatruc
Re : Recherche des arguments d'une fonction Excel par VBA

Re,

Maintenant si des arguments contiennent des textes entre guillemets avec des virgules, il faut tester la parité du nombre de guillemets à partir de :

Code:
ng = (Len(txt) - Len(Replace(txt, """", ""))) / 2 'guillemets
Fichier (2).

A+
 

Pièces jointes

  • Recherche des arguments(2).xls
    44.5 KB · Affichages: 58

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom