Comment comparer les formules de 2 classeur différents ?

Le
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éesinon, j'ai plus qu'a me
coltiner la comparaison de chaque cellule une à une GRrrr ! J'suis pas
rendu :(
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #19675431
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 !!!!!
FPinton
Le #19675571
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"
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 !!!!!



FFO
Le #19675771
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 !!!!!
FPinton
Le #19675931
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"
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 !!!!!



FFO
Le #19677121
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 !!!!!
FPinton
Le #19677721
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"
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 !!!!!



Publicité
Poster une réponse
Anonyme