Faire apparaitre les différences entre 2 colonnes

Bjr à tous

Néophyte mais plein de bonne volonté, je voudrai afficher les différences entre une fiche de référence excel (sans en-tête) et un fichier excel .xlsx de plusieurs milliers de lignes(Fichier exemple joint).

Je précise que ces deux fichiers sont bien distincts et n'appartiennet pas à la même feuille.

D'avance merci pour votre aide et vos conseils

Cordialement

Bonjour,

Si j'ai bien compris, voici la solution.

Tu fais une mise en forme conditionnelle.

Je te joins ton fichier avec la mise en forme.

J'ai simplement mis si Ix <> Dx la cellule se colore en rouge. (<> signifie différent)

Cdlt

Bjr Nooby74

Tout d'abord merci pour ta rapidité , si tu peux me détailler ta manip.

Les différences doivent apparaitre sur le fichier excel et non sur la fiche , la fiche référence et le fichier excel ne sont pas en réalité sur la même feuille , mais 2 fichiers excel distincts (# de mon exemple) .

Cordialement

La mise en forme conditionnelle ne fonctionne pas lorsque se sont 2 classeurs ou feuilles différents.

Une solution possible est de copier la colonne de référence dans ton autre classeur.

La procédure pour la mise en forme conditionnelle est la suivante ( par contre sous excel 2007 je n'ai pas le 2013):

1 - tu sélectionnes la plage de cellules ou tu veux appliquer la mise en forme

2 - Clic sur mise en forme conditionnelle (dans l'onglet accueil)

3 - Clic sur nouvelle règle

4 - Choisir l'option : "utiliser une formule pour déterminer pour quelle cellule le format sera appliqué"

5 - Dans la barre de formule qui apparaît mettre =$D7<>$I7 (en utilisant ton exemple)

6 - Clic sur format et dans remplissage tu sélectionnes la couleur de ton choix

7- Appliquer et le tour est joué

Au cas ou et si il est présent : penses à supprimer le symbole $ situé juste avant le chiffre lorsque tu sélectionnes une cellule avec la souris.

Merci pour ta solution mais pas moyen de l'automatiser ......

Cdlt

Enlève les données de tes tableaux et je te le fais

OK ci-joint Fichier

Merci

Voilà le fichier dis moi si ça te correspond.

Cdlt,

Nooby74

Encore merci pour ton aide et ta participation

Je ne sais pas si ça correspond à ma demande je voudrai la tester avec mes fichiers réels plusieurs milliers de lignes...

Comment as-tu fait??Si tu pouvez me détailler ta manip afin que je puisse la comprendre et la reproduire .

Je vais la tester demain matin

Bonne soirée

Cdlt

Dans VBA, j'ai créé la macro suivante :

Sub comparaison()
Application.ScreenUpdating = False
For i = 7 To 3000
If Worksheets("Fichier").Range("D" & i) <> Worksheets("Fiche Référence").Range("D" & i) Then
Worksheets("Fichier").Range("D" & i).Select
With Selection.Interior
.Color = 255
End With
Else
Worksheets("Fichier").Range("D" & i).Select
With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
        End With
End If
Next i
Application.ScreenUpdating = True
End Sub

Pour que tu comprennes la macro, je vais t'expliquer les différents termes utilisés:

1- Application.ScreenUpdating : c'est pour ne pas voir l’exécution de la macro au début de la macro on met

2- For i = 7 To 3000 --> ça veut dire pour i de 7 à 3000

3- If Worksheets("Fichier").Range("D" & i) <> Worksheets("Fiche Référence").Range("D" & i) Then --> ça signifie si la cellule Di de la feuille "fichier" est différente de la cellule Di de ton fichier de référence alors...

Tu viens maintenant de voir qu'on à attribué à i un certain nombre de valeur qui vont aller de 7 à 3000. Dans la ligne 3- tu peux voir Di donc quand tu exécuteras la macro tu obtiendras D7, D8, D9..... D3000. En gros ça fixe ta plage à analyser.

4- Worksheets("Fichier").Range("D" & i).Select --> sélectionner la cellule Di de la feuille "Fichier"

5- With Selection.Interior --> Avec le format intérieur de la cellule selectionner

6- .Color = 255 --> colorer en rouge

7- End With --> fin de Avec

8- Else --> sinon, ça veut dire l'inverse du point 2- si la cellule Di de la feuille "fichier" est égale à la cellule Di de ton fichier de référence alors...

9- Worksheets("Fichier").Range("D" & i).Select --> idem que 4-

10- With Selection.Interior --> idem que 5-

11- .Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0 --> enlever la couleur de la cellule (cette ligne n'est pas obligatoire dans ton cas mais elle permet si il y a déjà des couleurs sur les différentes cellules de les enlever)

12- End With --> idem 7-

13- End if --> fin de la formule si

14- Next i --> i suivant. Comme tu l'as vu on a commencé par i = 7 donc le suivant est i=8 etc... jusqu'à 3000. Cette ligne permet de refaire toutes les étapes précédentes pour tous les i jusqu'à 3000.

15- End sub --> fin de la macro

Bjr

Merci pour avoir détaillé ta macro, je n'ai pas eu le temps de la tester sur mes fichiers ,étant vraiment débutant je vais essayer de la comprendre et de l'appliquer .

Je te tiens au courant

Merci pour ta patience et ta participation

Cdlt

Bjr

J'ai modifié la macro ainsi :Mes 2 fichiers sont SERIE et Reference les colonnes à comparer sont SERIE colonne E2...........et Reference colonne C6............

Donc

Sub comparaison()

Application.ScreenUpdating = False

For i = 7 To 3000

If Worksheets("SERIE").Range("E" & i) <> Worksheets("Reference").Range("C" & i) Then

Worksheets("SERIE").Range("E" & i).Select

With Selection.Interior

.Color = 255

End With

Else

Worksheets("SERIE").Range("E" & i).Select

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

End If

Next i

Application.ScreenUpdating = True

End Sub

En executant la macro j'obtiens le message : Erreur de compilation .Pattern=x1None

Cordialement

Nouvelle correction:

Sub comparaison()

Application.ScreenUpdating = False

For i = 7 To 3000

If Worksheets("SERIE").Range("E2:E900") <> Worksheets("Reference").Range("C6:C900") Then

Worksheets("SERIE").Range("E2:E900").Select

With Selection.Interior

.Color = 255

End With

Else

Worksheets("SERIE").Range("E2:E900").Select

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

End If

Next i

Application.ScreenUpdating = True

End Sub

Toujours la même erreur "Erreur de compilation"

Cdlt

Bonjour,

Regarde ce fichier.

Il peut peut-être t'aider.

Cdlt.

Bjr

Merci pour ta réponse comment as-tu fait?

Si tu peux me détailler pas à pas ta macro pour la comprendre et la reproduire.

Encor Merci pour ta réponse et ton aide

Cordialement

Rechercher des sujets similaires à "apparaitre differences entre colonnes"