Excel 2010 - Comparaison plages valeurs dans deux feuilles

Fermé
Fleur - 12 sept. 2014 à 19:24
 Fleur - 29 sept. 2014 à 23:46
Bonjour,
Je sollicite votre aide pour comparer le contenu de deux plages dans deux feuilles excel.
Je suis novice et je dois faire diverses étapes, déjà je n'arrive pas à comparer deux valeurs dans deux feuilles.
Mon besoin :
Comparer les contenus des deux plages dans deux feuilles :
colonnes D et F de la feuille" Encours" avec le contenu des
colonnes A et B de la feuille "Original".
1 - Si contenu de la colonne D (feuille Encours) vide, passer à la valeur suivante
2- Si contenu des colonnes D (feuille Encours) et A (feuille Original) différent, noter feuille Encours, colonne E "Pas trouvé" et passer à la valeur suivante.
3 - Si contenu des colonnes D (feuille Encours) et A (feuille Original) identique, comparer les valeurs correspondantes des colonnes F (feuille Encours) et B (feuille Original),
Si valeurs identiques (colonnes D, F avec A,B), mettre "Idem" en colonne E (feuille encours)
Si valeurs identiques colonnes D et A, mais valeurs différentes pour colonnes F et B, noter le montant de la feuille Original dans la colonne E "Result" de la feuille "Encours".
Mettre le fonds de la cellule en rouge.
4 - Identifier (fonds de cellule colonne A de couleur) dans la feuille "Original" les noms pas présents dans la feuille "Encours"
Pb. parfois dans la feuille "Original" nous pouvons avoir plusieurs lignes avec le même nom et des montants différents et en regard dans la feuille "Encours" une seule ligne,
Par conséquent si on trouve les même noms entre les deux feuilles, on doit ajouter les montants feuille Original avant comparaison et report de donnée dans la feuille Encours.


Sub Compare()
Dim i As Integer
Dim col_1 As Range
Dim col_2 As Range
Dim CelCol_1 As Range

'Rechercher dernière cellule renseignée feuille encours et effacer contenu colonne E
With Worksheets("Encours")
derlig = .Range("D" & Rows.Count).End(xlUp).Row
.Range("E4:E" & derlig).ClearContents
End With
' reste à effacer la couleur
'Definition plage de cellules
Set col_1 = Worksheets("Original").Range("A1:A200")
Set col_2 = Worksheets("Original").Range("B1:B200")
Set CelCol_1 = Worksheets("Encours").Range("E1:E" & derlig)

With ThisWorkbook.Sheets("Encours")
For i = derlig To 4 Step -1
'test si cellule vide, passer à la suivante
'Test si valeur cellule Encours!=Dx est dans Plage col_1(Original!A1:A200))
If Application.CountIf(col_1, .Range("D" & i).Value) = 0 Then
CelCol_1(i) = "KO"
'ElseIf Application.CountIf(col_1, .Range("D" & i).Value) = 0 And Application.CountIf(col_2, .Range("F" & i).Value) = 0 Then
CelCol_1(i) = "Pas trouvé"
Else
CelCol_1(i) = "Idem"
End If
'End If
Next i
End With
Msgbox ("Fin")
End Sub

Comment faire pour comparer les deux plages de valeurs ?
Merci d'avance pour votre aide.
A voir également:

3 réponses

PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
12 sept. 2014 à 20:27
Bonjour,

Une cellule totalement vide n'égale pas zéro.
Tu peux utiliser
Range("D" & i).Value) = ""
"" c'est le vide. 0 c'est le chiffre zéro.

<> est le symbole pour différent

If (Application.CountIf(col_1, .Range("D" & i).Value) = 0) <> (Application.CountIf(col_2, .Range("F" & i).Value) = 0) Then
0
Bonsoir,
Merci pour les informations. J'ai continué mes tests mais sans succes.
J'ai déposé le fichier exemple
http://www.cjoint.com/?3ImxUxlUYog
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
15 sept. 2014 à 15:04
(Range("D" & i).Value = 0) <>.(Range("F" & i).Value = 0)

En gros <> compare les deux segments.
Premier segment.
(Range("D" & i).Value) = 0) est-ce que Range D égale zero, oui ou non, disons non
Deuxième segment
(Range("F" & i).Value) = 0) est-ce que Range F égale zéro, oui ou non, disons non.

Comparaison, est-ce que non est différent de non. la réponse non, donc il n'entre pas dans ton IF.

Si tu veux comparer les valeurs, tu enlève le =0
(Range("D" & i).Value) <>.(Range("F" & i).Value)
premier segment, la valeur de range D
Deuxieme segment, la valeur de range F

<> est-ce que les valeurs sont pareille ou différente.

En espérant que ca t'aide
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 sept. 2014 à 08:01
Bonjour,


Tu as bien que 48 lignes dans "encours" ?

sinon envoie le classeur avec toutes les lignes d'encours: besoin pour connaitre les lignes vides (nettoyage rapide colonne E)
0
Bonsoir Michel_m,
j'ai bien 48 lignes actuellement dans "encours". Le nombre de lignes va être variable chaque semaine et normalement la dernière ligne aura toujours une valeur en colonne D.
Pour l'instant lors de mes tests, pas de pb pour effacer le contenu de la colonne E. Mon souci est sur la comparaison des deux plages de valeurs. J'arrive à comparer une seule plage entre les deux feuilles et non les deux et je ne sais pas comment faire pour reporter la valeur différente dans l'autre feuille.

Merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
15 sept. 2014 à 10:55
Bonjour,

Beaucoup de trucs à faire en ce début de semaine ! :o(

si personne n'intervient, j'essaierai de te proposer qq chose

cordialement
0
Bonsoir,
PlacageGranby, merci pour les explications. La comparaison des valeurs dans une même feuille fonctionne. Reste à trouver comment faire pour comparer avec une feuille différente et surtout ramener la valeur .
Ce qui n'est pas encore de mon niveau.
Merci à vous deux pour votre aide.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 sept. 2014 à 09:23
Bonjour

Tombé du lit ce matin -->Ci joint proposition
j'ai travaillé sur un feuille ccm pour pouvoir testé avec ton envoi
Il me reste à colorier la page "original" mais il y en a pas pour longtemps
Désolé mais j'ai RV pour me faire arracher des dents: tu vois, c'est le club Med pou moi
regarde déjà si ça te convient
https://www.cjoint.com/?3Iqjy2M3Q4a

0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 sept. 2014 à 10:43
RV reporté à cet aprèm

Donc

complété Couleur feuille "original"
Pris en compte le problème de doublons dans cette feuille (j'y ai créé le doublon "paris/cont")
https://www.cjoint.com/c/DIqkS35VPnJ

tu dis
0
Bonsoir michel_m,
Espère que la journée ne fut pas trop difficile, loin du club Med.
Merci pour tes retours et ta rapidité. Je regarde le tout et fais retour.
0
Bonsoir michel_m,
Un grand merci. Super.
J'ai testé sur une nouvelle liste de données et j'essaye de déchiffrer certaines parties de ton code.
Car si dans la feuille Encours (colonne F Montant) les montants ne sont pas seulement avec 3 décimales après la virgule (bien que affichage 3 décimales après la virgule), le résultat n'est pas celui attendu, il affiche les 2 montants au lieu de noter "idem".
Est-ce possible de gérer le cas de décimales variables dans la feuille "encours"?
après test : Resultat Montant
0,563 0,56283333
J'ai essayé de changer la valeur arrondi dans le code. Pas la bonne solution.
Comment tronquer la valeur pour le calcul ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 sept. 2014 à 07:52
Bonjour,

Désolé, mais j'avais déconnecté et l'électricité de l'ordi en raison des violents orages dans mon coin (beaucoup d'inondations et évacuation de personnes)...

Concernant ton dernier message, j'ai comparé le tableau que tu désirais et le mien: aucune différence mis à part Paris/cont, modifié pour vérifier les totaux des doublons.

Donc, je ne comprend pas ta remarque

Ce n'est facile d'avancer à cause du décalage horaire -j'espère pour toi que ce n'est pas de l'insomnie ! - et je suis absent demain toute la journée (le solei sera de retour, yeeeah)

Cordialement
0
Bonsoir,
Espère que les intempéries n'ont pas trop sévies.
Des journée très chargées, sans fin...
Le problème n'est pas dans les tableaux échangés mais dans la dernière version en ma possession, feuille encours.
Feuillle Encours (colonne F Montant) les montants ne sont pas seulement avec 3 décimales après la virgule (bien que affichage 3 décimales après la virgule).
Exemple contenu colonne : 0,56283333 - affichage définit en tant que nombre avec trois décimales (0,523). Dans ce cas, le résultat de la comparaison est "0,523" au lieu de "Idem"
Est-ce plus clair ?
0