Macro pour comparaison entre 2 tableaux

Bonjour,

J'ai trouvé pas mal d'aide en parcourant le forum pour faire des fonctions pour me faciliter la vie au niveau d'une tâche à mon boulot ou je perds un temps fou à mettre en forme un tableau selon toujours la même procédure, cependant je bute sur un truc pour terminer ce que je voudrais faire, j'ai annexé mon fichier excel pour plus de facilité.

Ca doit être simple mais bon je suis débutant..

Vous vous mettez sur l'onglet "histo avant et après"

fonction jaune/rouge

En gros, si la ligne B2 à G2 se retrouve sur le tableau de l'onglet "tableau*définitif" la cellule C2 doit se remplir en jaune, sinon elle doit se remplir en rouge, à la fin de la macro je dois me retrouver donc avec les cellules de la colonne C soit en jaune ou en rouge.

fonction mauve

en partant de l'onglet histo avant-et après, je voudrais que si la cellule B2 ne se retrouve pas dans la colonne B sur le tableau sur l'onglet "tableau définitif" , qu'elle se remplisse de mauve. En gros si une date du 2éme tableau ne se retrouve pas sur le premier que la cellule se mette en mauve.

Merci d'avance pour vos futurs éclaircissements.

15fichier-kyuss.xlsm (22.06 Ko)

Bonjour Kyuss le forum

J'aime beaucoup les demandes, ou on informe les gens qui peuvent t'aider, que c'est """certainement simple""" !!!!

Déjà ce qui l'est moins "Simple", c'est que tu veux vérifier de B2 à G2, OK mais sans tenir compte de la colonne A ???

de plus pour le mauve OK , mais s'il faut mettre en mauve si la date n'existe pas, c'est pareil sans tenir compte de la valeur en colonne A ????

Car dans les deux cas mis dans le fichier le relevé à été fait à la même date donc même si la date est présente dans le deuxième dans le groupe 1 et dans le premier groupe 2 dans l'autre, aucune cellule ne sera en mauve, et pourtant il en faudrait 2.

Alors des Explications qui elle seront effectivement simples et précises, et on pourra te le faire.

a+

Papou

Re Kyuss le forum

bon pas de réponse alors voilà avec ce que je pensais

a+

Papou

16kyuss-v1.xlsm (33.24 Ko)

Salut,

Merci pour ta réponse, désolé je viens seulement d'avoir le temps de te livrer mon explication (mon bébé de 1 an fait sa sieste).

En gros l'historique définitif est le relevé de consommation électriques d'un client, moi je dois fournir cet historique mais aussi tel qu'il était quand il y a eu des corrections, donc si tu veux en jaune ce sont les valeurs actuelles et définitives et en rouge les valeurs précédentes qui ont été modifiées, donc pour la fonction jaune/rouge, pour les cellules de par exemple B2 à G2 si la ligne après être comparée dans tout le tableau définitif correspond la cellule index se mettra en jaune, sinon d'office cela correspondra à une modification précédente et elle se mettra en rouge. Pour la colonne A je n'en ai pas besoin c'est juste une colonne ou la ligne que tu vois avec les lettres et numéros signifie que c'est le registre JOUR et NUIT du compteur électrique, je n'en tiens donc pas compte. Pour la fonction mauve, en fait si une date du tableau 2 ne se retrouve pas dans le tableau définitif cela signifie que c'est un index qui était encodé à une date mais qui a été supprimé, cela n'arrive pas souvent mais c'est toujours bien ainsi je peux voir qu'un index a été supprimé.

A titre indicatif voici la fonction que j'utilise pour virer les doublons :

Sub SupprimerDoublons4C()

Dim monDico As Object

Dim i As Integer

Set monDico = CreateObject("Scripting.Dictionary")

Application.ScreenUpdating = False

i = 1

Do While Cells(i, "B") <> ""

If Not monDico.Exists(Cells(i, "B") & Cells(i, "C") & Cells(i, "D") & Cells(i, "E") & Cells(i, "F")) Then

monDico(Cells(i, "B") & Cells(i, "C") & Cells(i, "D") & Cells(i, "E") & Cells(i, "F")) = ""

i = i + 1

Else

Rows(i).EntireRow.Delete

End If

Loop

End Sub

Je vais checker le fichier que tu m'as annexé, déjà merci pour l'aide !

Re,

Je viens de faire le test, c'est du très beau boulot ! tu viens de me faire gagner un temps de dingue. En fait dans l'exemple de mon tableau je n'ai pas le cas ou une date est différente du tableau 1, mais imaginons qu'une date est présente dans le tableau 2 et qu'elle n'appartient pas au tableau 1 après balayage, à ce moment là la cellule date se mettrait en mauve, ça me permettrait de voir que l'index à cette date a été supprimé, car il ne se retrouve pas dans le tableau 1, tout en ayant bien sur la celulle index en rouge car la ligne ne correspond pas exactement au tableau 1.

Re bonjour

Merci de me

Donner un fichier avec l’exemple d’une ligne à faire afficher en mauve car pour moi il est évident que les cellules en mauve seront sur la même ligne que les lignes en rouge

Merci de poster un exemple concret

A plus

Papou

Re,

Je t'annexe le fichier avec l'explication et l'exemple.

Merci à toi pour ta patience !

Re Re,

Je suis en train d'essayer d'adapter ta fonction jaune/rouge sur une autre sorte d'historique, tu crois que je peux directement adapter ta fonction telle quelle juste en changeant les colonnes ou est-ce qu'il faut changer des trucs importants à certains endroits ?

10fichier-kyuss.xlsm (37.21 Ko)

bonjour Kyuss le forum

réponse modification rapport à la première demande

a+

Papou

13kyuss-v2.xlsm (35.18 Ko)
Rechercher des sujets similaires à "macro comparaison entre tableaux"