p'tit vieux
XLDnaute Occasionnel
Bonjour à tous
Après moulte recherche et écriture de divers fonctions donnant des résultats mitigés, je n'arrive pas à trouver LA bonne solution à mon problème.
Alors ayant très "bobo tête" je men remet à vos esprits d'expert.
PS: J'ai essayé avec Split, Instr, InStrRev etc Parfois en utilisant Like. Mais … Boff ce n'est pas vraiment cela.
Voici le problème.
Exemple de formule à traiter:
"=FOO(((A),(B),"C"),"D,E,F",((G),H))"
Pour simplifié j'ai mis des lettres à la place des valeurs
A, B , C, E, F G etc = sont des "valeurs paramètres".
Exemple de ce peut contenir A, B etc.
A = A1:B2, B5, B7, C8
B = D5:E12
C = 9850
D = Banque, Caisse, Référence -> par exemple.
Ce qui donnerait en développant:
"(((A1:B2, B5, B7, C8),(D5:E12),"9850"),"Banque, Caisse, Référence",((G),H))"
OBJECTIF: Extraire chaque paramètre en gardant sa cohérence.
Dans la formule ci-dessus les paramètres complets a extraire serait :
n°1 : ((A),(B),"C")
N°2 : "D,E,F"
N°3 : ((G),H))
MAIS:
Il peut y avoir imbrication de fonction "Foo()". Comme ceci:
"=FOO1(((A),(B),"C"),"D,E,F",(FOO2((a),(b),"c"),H))"
… Sinon ce ne serait pas drôle. Ici, FOO2 = le paramètre G qui sera analysé à part.
Pour vous aider à m'aider , si j'utilise Split sur la virgule "," ou sur la "(" ou la ")" sans compter le paramètre délimité par " " " -Chr(34)- , j'obtiens un tableau qui ne correspond à rien sans des traitement supplémentaires.
Si quelqu'un a une idée (ou plusieurs) j'en serai très heureux.
Désolé pour les mots de tête. J'aime bien partager
Par avance merci à vous.
PS:
Bien sûr ici dans l'exemple on peut commencer par simplifier la 1ere et la dernière parenthèse. Mais, même si rare, ce n'est pas toujours le cas.
Après moulte recherche et écriture de divers fonctions donnant des résultats mitigés, je n'arrive pas à trouver LA bonne solution à mon problème.
Alors ayant très "bobo tête" je men remet à vos esprits d'expert.
PS: J'ai essayé avec Split, Instr, InStrRev etc Parfois en utilisant Like. Mais … Boff ce n'est pas vraiment cela.
Voici le problème.
Exemple de formule à traiter:
"=FOO(((A),(B),"C"),"D,E,F",((G),H))"
Pour simplifié j'ai mis des lettres à la place des valeurs
A, B , C, E, F G etc = sont des "valeurs paramètres".
Exemple de ce peut contenir A, B etc.
A = A1:B2, B5, B7, C8
B = D5:E12
C = 9850
D = Banque, Caisse, Référence -> par exemple.
Ce qui donnerait en développant:
"(((A1:B2, B5, B7, C8),(D5:E12),"9850"),"Banque, Caisse, Référence",((G),H))"
OBJECTIF: Extraire chaque paramètre en gardant sa cohérence.
Dans la formule ci-dessus les paramètres complets a extraire serait :
n°1 : ((A),(B),"C")
N°2 : "D,E,F"
N°3 : ((G),H))
MAIS:
Il peut y avoir imbrication de fonction "Foo()". Comme ceci:
"=FOO1(((A),(B),"C"),"D,E,F",(FOO2((a),(b),"c"),H))"
… Sinon ce ne serait pas drôle. Ici, FOO2 = le paramètre G qui sera analysé à part.
Pour vous aider à m'aider , si j'utilise Split sur la virgule "," ou sur la "(" ou la ")" sans compter le paramètre délimité par " " " -Chr(34)- , j'obtiens un tableau qui ne correspond à rien sans des traitement supplémentaires.
Si quelqu'un a une idée (ou plusieurs) j'en serai très heureux.
Désolé pour les mots de tête. J'aime bien partager
Par avance merci à vous.
PS:
Bien sûr ici dans l'exemple on peut commencer par simplifier la 1ere et la dernière parenthèse. Mais, même si rare, ce n'est pas toujours le cas.
Dernière édition: