OVH Cloud OVH Cloud

Test sur une formule Excel en VBA

2 réponses
Avatar
Christian.L
Bonjour à tous

En VBA, je voudrais tester les cellules de la feuille pour savoir si elles
contiennent une formule (SOMME en l'occurrence), ceci afin de
récupérer les "bornes" de la somme afin de procéder a un traitement
de formatage.

Hors un test du type "Left(cells(ligne,27), 6) = "=SOMME" ne fonctionne pas.

Je voudrais pouvoir récupérer la formule sous forme de texte, pour en
extraire les informations souhaitées.

Quelqu'un a t'il une idée ?

Merci d'avance

Christian

2 réponses

Avatar
Michel Gaboly
Bonjour,

C'est l'anglais la langue par défaut de VBA. D'autre part, il ne faut p as tester Cells qui te renvoie un objet Range
dont la propriété par défaut est Value.

Cells(ligne, 27) équivaut donc (à de rares exceptions près, qu sort ent de ce cadre) à Cells(ligne, 27).Value

Par conséquent, tu testes la valeur et pas la formule.

Il faut donc utiliser

Cells(ligne, 27).Formula et tester avec "SUM" et non "SOMME"

Tu peux tester les noms en français avec .FormulaLocal, mais si un jour tu dois travailler sur un poste avec Excel dans
une autre langue que le français, ton test cessera de fonctionner. Mê me risque si tu communiques le document à quelqu'un
d'autre sans savoir quelle est la version d'Excel qu'il utilise.


Bonjour à tous

En VBA, je voudrais tester les cellules de la feuille pour savoir si el les
contiennent une formule (SOMME en l'occurrence), ceci afin de
récupérer les "bornes" de la somme afin de procéder a un traiteme nt
de formatage.

Hors un test du type "Left(cells(ligne,27), 6) = "=SOMME" ne foncti onne
pas.

Je voudrais pouvoir récupérer la formule sous forme de texte, pour en
extraire les informations souhaitées.

Quelqu'un a t'il une idée ?

Merci d'avance

Christian



--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Christian.L
Merci Michel

Je vais cherchez et me débrouiller dans ce sens.

Christian


"Michel Gaboly" a écrit dans le message de news:

Bonjour,

C'est l'anglais la langue par défaut de VBA. D'autre part, il ne faut pas
tester Cells qui te renvoie un objet Range
dont la propriété par défaut est Value.

Cells(ligne, 27) équivaut donc (à de rares exceptions près, qu sortent de ce
cadre) à Cells(ligne, 27).Value

Par conséquent, tu testes la valeur et pas la formule.

Il faut donc utiliser

Cells(ligne, 27).Formula et tester avec "SUM" et non "SOMME"

Tu peux tester les noms en français avec .FormulaLocal, mais si un jour tu
dois travailler sur un poste avec Excel dans
une autre langue que le français, ton test cessera de fonctionner. Même
risque si tu communiques le document à quelqu'un
d'autre sans savoir quelle est la version d'Excel qu'il utilise.


Bonjour à tous

En VBA, je voudrais tester les cellules de la feuille pour savoir si elles
contiennent une formule (SOMME en l'occurrence), ceci afin de
récupérer les "bornes" de la somme afin de procéder a un traitement
de formatage.

Hors un test du type "Left(cells(ligne,27), 6) = "=SOMME" ne fonctionne
pas.

Je voudrais pouvoir récupérer la formule sous forme de texte, pour en
extraire les informations souhaitées.

Quelqu'un a t'il une idée ?

Merci d'avance

Christian



--
Cordialement,

Michel Gaboly
www.gaboly.com