Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment comparer les formules de 2 classeur différents ?

6 réponses
Avatar
FPinton
Bonjour à tous !

Est-il possible, de façon simple, de comparrer les formules de 2 classeurs
différents ?
Comparrer en fait les formules d'un ClasseurA-feuilleA avec celles d'un
ClasseurB-feuilleA et ressortir les emplacements qui diffèrent. Je travaille
depuis 1 moi sur 1 classeur qui normalement était synchronisé entre 2
emplacements différent et je viens de m'appercevoir que la synchronisation
ne fonctionne plus.

Merci de votre aide si vous avez une idée...sinon, j'ai plus qu'a me
coltiner la comparaison de chaque cellule une à une GRrrr... ! J'suis pas
rendu :(

6 réponses

Avatar
FFO
Salut à toi

Mets ce bout de code dans une macro :

For Each c In Selection
If c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula Then
c.Interior.ColorIndex = 6
End If
Next

Puis sélectionnes toutes tes cellules à comparer dans la FeuilA de ton
ClasseurA et exécutes la macro

Toutes celles différentes seront colorées en jaune

Adaptes :

Workbooks("ClasseurB.xls").Sheets("FeuilA").Range

du nom exacte de ton classeurB et de sa feuille

Fais des essais et dis moi !!!!!
Avatar
FPinton
Merci FFO de ton aide.
J'ai testé ton code, il fonctionne et m'indique bien des cellules dont la
formule est différente, mais il met aussi en jaune les cellules dont les
valeurs retournée par les formules sont différentes.Je souhaiterais trouver
seulement les formules différentes et pas les résultat différents de toutes
les formules.
Ton code peut il être retouché en ce sens ?

"FFO" a écrit dans le message de news:

Salut à toi

Mets ce bout de code dans une macro :

For Each c In Selection
If c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula Then
c.Interior.ColorIndex = 6
End If
Next

Puis sélectionnes toutes tes cellules à comparer dans la FeuilA de ton
ClasseurA et exécutes la macro

Toutes celles différentes seront colorées en jaune

Adaptes :

Workbooks("ClasseurB.xls").Sheets("FeuilA").Range

du nom exacte de ton classeurB et de sa feuille

Fais des essais et dis moi !!!!!



Avatar
FFO
Rebonjour à toi

Je n'ai pas ce phénomème
J'ai testé avec des valeurs retournées par les formules différentes seules
les cellules ayant une formule divergente et non son résultat sont colorées
en jaune

Par contre si des cellules n'ont pas de formule mais une données différentes
elles sont aussi colorées

Je te propose donc pour y remédier le code modifié ainsi :

For Each c In Selection
If c.Formula Like "=*" And c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula Then
c.Interior.ColorIndex = 6
End If
Next


Fais des essais et dis moi !!!!!
Avatar
FPinton
Tu as raison, sur ta 1ere version, le résultat de la formule ne changeait
rien à la reconnaissance des cellules.
Ta modif fonctionne de manière plus sélective, reste que les formules
présentent dans une feuille et pas encore dans l'autre ne sont pas reconnues
cette foi. Mais ça ma déjà permis de visualiser une grosse partie des
formules que je dois synchroniser.
Encore merci de ton aide



FFO" a écrit dans le message de news:

Rebonjour à toi

Je n'ai pas ce phénomème
J'ai testé avec des valeurs retournées par les formules différentes seules
les cellules ayant une formule divergente et non son résultat sont
colorées
en jaune

Par contre si des cellules n'ont pas de formule mais une données
différentes
elles sont aussi colorées

Je te propose donc pour y remédier le code modifié ainsi :

For Each c In Selection
If c.Formula Like "=*" And c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula Then
c.Interior.ColorIndex = 6
End If
Next


Fais des essais et dis moi !!!!!



Avatar
FFO
Rebonjour à toi

Heureux de t'avoir satisfait

Pour exclure les cellules non encore présentes dans la feuilA ClasseurB tu
peux rajouter ceci :
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address) <> ""

dans la ligne :
If c.Formula Like "=*" And c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula And
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address) <> "" Then

ce qui donne :

For Each c In Selection
If c.Formula Like "=*" And c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula And
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address) <> "" Then
c.Interior.ColorIndex = 6
End If
Next

Je n'ai pas testé mais celà doit fonctionner avec ta dernière contrainte

Donnes moi des nouvelles !!!!!
Avatar
FPinton
Merci FFO....Tu m'as sorti d'une belle panade. Grace à ton code, j'ai réussi
à tout remettre comme il faut, en peut de temps.

Encore merci pour ton aide !

"FFO" a écrit dans le message de news:

Rebonjour à toi

Heureux de t'avoir satisfait

Pour exclure les cellules non encore présentes dans la feuilA ClasseurB tu
peux rajouter ceci :
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address) <> ""

dans la ligne :
If c.Formula Like "=*" And c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula And
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address) <> "" Then

ce qui donne :

For Each c In Selection
If c.Formula Like "=*" And c.Formula <>
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address).Formula And
Workbooks("ClasseurB.xls").Sheets("FeuilA").Range(c.Address) <> "" Then
c.Interior.ColorIndex = 6
End If
Next

Je n'ai pas testé mais celà doit fonctionner avec ta dernière contrainte

Donnes moi des nouvelles !!!!!