Excel Comparer les formules dans les cellules et non leur valeur

claridean Messages postés 2 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 12 juillet 2008 - 1 juil. 2008 à 17:03
claridean Messages postés 2 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 12 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

8 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 juil. 2008 à 17:20
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+
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
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 ...

Molenn
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juil. 2008 à 18:17
thème topic : déplacé de VB.NET vers VBA...
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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 :

=

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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
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

Voila y a plus qu'a ecrire le code
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 juil. 2008 à 08:53
 bigfish le vrai copieur !

Très Amicalement,
Us.
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
2 juil. 2008 à 16:21
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+
0
claridean Messages postés 2 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 12 juillet 2008
12 juil. 2008 à 12:02
Merci à tous,

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