Excel Comparer les formules dans les cellules et non leur valeur

Signaler
Messages postés
2
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
12 juillet 2008
-
Messages postés
2
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
12 juillet 2008
-
Bonjour,

j'aimerai comparer les formules à l'intérieur des cellules d'un tableau Excel et non le résultat que donnent ces formules. Exemple simplifié pour être plus claire dans ma demande, j'aimerai vérifier si la formule de la cellule E1 (=a1*b1/c1) est la même que pour la cellule E2(=a2*b2/c2) et par exemple colorer les cellules qui ont une formule différente genre (=a2/c3) ou pas de formule du tout...

Merci d'avance de votre aide

claridean

8 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

pour commencer tu n'ai pas dans le bon theme ! Pour excel et plus generalement le VBA, le bon theme est ici :

[infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6] / [infomsgt_LANGAGES-DERIVES_287.aspx Langages dérivés] / [infomsgt_VBA_244.aspx VBA] /

Pour le reste c'est bien on sait ce que tu veux faire, mais... quelle est la question au juste ?

A+
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
En VBA, tu peux faire tes contrôles sur la propriétés FormulaR1C1 ou FormulaLocal.
Par contre, à toi de gérer tes propres paramètres parce qu'il faut les comparer en tant que chaîne de caractères.
Pour reprendre ton exemple, E1 (=a1*b1/c1) n'est pas égal à E2(=a2*b2/c2) alors que tu voudrais que la réponse le soit je suppose (si j'ai bien suivi ce que tu veux faire ^^)

A toi de créer ta propre fonction donc, qui ira vérifier un truc comme le nom des colonnes, la position du signe * et /, etc ...

Molenn
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
thème topic : déplacé de VB.NET vers VBA...
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir à tous,

Sans vouloir de décourager, je pense, Claridean, que c'est peine perdue, s'il te faut considérer que a1*a1 soit aussi égal à a1^2 ... Par contre, si tu veux faire que la comparaison stricte des formules, alors c'est jouable...

Exemple de base, en imaginant que dans C6 tu as A1*A1+A1 et dans C7 la formule A2*A2+A2, alors le code suivant compare les formules :

=

Sub es()



'COMPARAISON FORMULES



a = Range("c6").Formula
b = Range("C7").Formula



Range("C7").Select
Selection.Copy
Range("C6").Select
ActiveSheet.Paste



c = Range("C6").Formula
If a = c Then MsgBox "identique" Else MsgBox "différent"



End Sub


=

Le principe est très simple, il suffit de garder en mémoire (dans des variables) le contenu des formules, puis de prendre la seconde formule, la copiée/collée à la place de la cellule précédente. Reprendre le contenu de la formule qui sera remise à jour automatiquement à jour avec les réfrénces par Excel, et de faire la comparaison...

Bien sur, il faut faire une boucle pour tout tester, et remettre les données modifiées...

JE te laisse étudier...

Amicalement,
Us.
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
peut etre une solution :

Quand tu fais un copier coller d'une cellule qui contient une formule voici ce qui ce passe

par exemple en B1 tu as : =A1*A1+A1
tu fais un copier de la cellule B1 puis tu la colle en B2. Avec cette manipe la formule coller en B2 devient :

=A2*A2+A2

Donc la solution serait de prendre une cellule en reference par exemple dans notre cas B1 mettre dans une variable string la formule de B1 puis de coller dans cette cellule B1 les formules des autres cellules. En suite  il suffit de comparer ce qu'est devenu la formule coller en la comparent a la formule d'origine en B1.

un exemple :

B1 = A1*A1+A1
B2 = (A2*A2)/2
B3 = A3*A3+A3

je met le contenu de A1 dans une variable MaFormule donc
MaFormule= "A1*A1+A1"
je copie B2 En B1 et la formule en B1 devient :
B1 = (A1*A1)/2
Je compare ma variable MaFormule avec la formule coller en B1 ce qui donne

"A1*A1+A1" = "(A1*A1)/2" faux donc on change la couleur de B2

et ainsi de suite la formule de B3 coller en B1 donne :

"A1*A1+A1" = "A1*A1+A1" vrai donc on ne change rien

Voila y a plus qu'a ecrire le code
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
 bigfish le vrai copieur !

Très Amicalement,
Us.
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut us_30, desolé j'ai pas rafraichi l'onglet de mon navigateur avant de poster et n'ai donc pas lu ton message avant de poster le mien

bah il a 2 explications pour la meme methode et ne pourra donc pas dire qu'il n'a rien compris

A+
Messages postés
2
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
12 juillet 2008

Merci à tous,

Je vais me débrouiller avec tout ça, vous m'avez mis dans la bonne voie.