Excel Comparer les formules dans les cellules et non leur valeur
claridean
Messages postés2Date d'inscriptionmardi 1 juillet 2008StatutMembreDernière intervention12 juillet 2008
-
1 juil. 2008 à 17:03
claridean
Messages postés2Date d'inscriptionmardi 1 juillet 2008StatutMembreDernière intervention12 juillet 2008
-
12 juil. 2008 à 12:02
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
A voir également:
Excel Comparer les formules dans les cellules et non leur valeur
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 1 juil. 2008 à 17:43
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 ...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 1 juil. 2008 à 22:55
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 :
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 1 juil. 2008 à 23:25
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