Comparer deux classeurs

Bonjour,

J'aimerai comparer les valeurs de deux classeurs.

Je m'explique :

Toutes les heures je recois des valeurs que je traite automatiquement et que je sauvegarde dans un classeur A

J'importe aussi des valeurs de notre BBD dans un autre classeur B toutes les heures

Mon but est de comparer ces deux classeurs pour voir si des valeurs du classeur A ne sont pas présentes dans notre classeur B

Par exemple ,

j'ai dans mon classeur A :

Pierre 27/06/2016 100,99

Pierre 26/06/2016 101,99

Pierre 25/06/2016 102,99

Pierre 24/06/2016 103,99

Pierre 23/06/2016 105,99

Antoine 27/06/2016 90,99

Antoine 26/06/2016 91,99

Antoine 25/06/2016 92,99

Antoine 24/06/2016 93,99

Antoine 23/06/2016 94,99

Dans le B :

Antoine 27/06/2016 90,99

Alphonse 25/06/2016 10.25

MArcel 26 /06/2016 25.69

Du coup ici j'aimerai mettre dans un nouveau classeur le fait que notre BDD ne contienne pas Pierre 27/06/2016 100,99

et donc mettre SEULEMENT la derniere date de Pierre et non toute

Voila j'espere avoir été clair

Bonjour Mojito.

Ca ne présente pas de grandes difficultés.

Il faudrait joindre deux fichiers similaires en exemple, afin de connaître la constitution des fichiers.

Faudra-t-il remplacer les anciennes valeurs de la BDD ?

En gros j'aimerai avoir un troisième classeur C qui ajoute à chaque fois les données qui ne sont pas présentes dans la BDD,

genre il met à la suite les valeurs mais n'efface pas celle enregistrer à l'heure d'avant

Je ne peux malheuresement pas trop joindre de fichiers (confidentiel)

Mais en gros le fichier A a par exemple a 10h 15 valeurs qui sont pas dans la bdd, mais 50 lignes de ces valeurs car plusieurs dates

donc je voudrais avoir seulement les 15 dernieres valeurs dans mon nouveau classeur C

a l'heure suivante j'en ai 5 qui sont pas dans ma bdd donc j'ajoute a mon classeur C les 5 nouvelles valeurs a leur plus recente date et ainsi de suite toutes les heures

Je fais ma macro dans quelle classeur ? dans le C nan ? je les appelle je copie dans la colonne A, B et C l'identifiant (A), la date (B) et la valeur (C) de mon classeur A puis je copie dans la colonne D l'identifiant de mon classeur B (car j'ai besoin que de lui au final

Puis je fais une analyse de A et D , si A5 n'est pas dans D je copie A5 B5 C5 dans une nouvelle feuille

Je ne peux malheuresement pas trop joindre de fichiers (confidentiel)

Il faudrait joindre deux fichiers similaires en exemple, afin de connaître la constitution des fichiers.

Je ne demande pas de joindre tes fichiers de travail, mais des similaires, dont tu auras purger le maximum.

tu vas avoir un fichier excel A contenant plus de 100K lignes contenant une ID / date / Valeur

De type :

XX1111111111 - 27/06/2016 - 85.79

XX1111111111 - 27/06/2016 - 84.79

XX1111111111 - 27/06/2016 - 83.79

XX1111111112 - 27/06/2016 - 147.27

XX1111111112 - 26/06/2016 - 145.89

XX1111111112 - 25/06/2016 - 146.19

XX1111111112 - 24/06/2016 - 147.17

XX1111111112 - 23/06/2016 - 147.07

XX1111111113 - 27/06/2016 - 371.11

XX1111111113 - 26/06/2016 - 361.11

XX1111111113 - 25/06/2016 - 351.11

XX1111111113 - 24/06/2016 - 341.11

XX1111111114 - 27/06/2016 - 15.71

XX1111111114 - 20/06/2016 - 14.71

XX1111111114 - 15/06/2016 - 13.71

XX1111111114 - 10/06/2016 - 12.71

XX1111111115 - 27/06/2016 - 43.35

XX1111111116 - 27/06/2016 - 1085.30

Dans le fichier B, contenant 7000 lignes avec jamais la meme valeur (que la colonne A d'importante) :

XX1111111111

XX1111111151

XX1111111171

XX1111111115

Voila comment sont composés les deux classeurs à comparer :

Du coup dans mon classeur C, je veux avoir :

XX1111111112 - 27/06/2016 - 147.27

XX1111111113 - 27/06/2016 - 371.11

XX1111111114 - 27/06/2016 - 15.71

XX1111111116 - 27/06/2016 - 1085.30

les autres etant deja present dans ma bdd

attention les lignes peuvent etre differentes, pas tjr le meme nb

Les fichiers sont impurgeable, faudrait que je mette tout en XX+10chiffresaléatoire

Bonjour,

Tant qu'à demander de l'aider , autant le faire avec de vrais fichiers excel sans données confidentielles , et ne pas demander aux autres de le faire

P.

Ce n'est pas pour t'embêter que nous demandons un fichier mais pour éviter de passer à côté d'informations importantes.

Ne pas oublier que le forum ne compte que des bénévoles.

Sub Test()

Dim Chemin As String, Fichier As String, I As Integer

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With

'Chemin = "C:\Users\fv\Documents\Test\"
'Fichier = "valManquants.xlsx" 'à adapter
'Workbooks.Open Chemin & Fichier

Windows("DataY.xlsx").Activate 'à adapter
Range(Range("A2"), Range("A170000").End(xlDown)).Copy  ' changement ici
Windows("valManquants.xlsx").Activate

    With Sheets("Sheet1")
       .Columns(.Range("A1").End(xlToLeft).Column).Offset(0, 1).Select
    End With

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Cells.EntireColumn.AutoFit
ActiveWorkbook.Close SaveChanges:=True

    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With

End Sub

En gros j'aimerai savoir comment faire pour adapter le nombre de lignes a copier en fonction du fichier

par exemple certaines heures j'ai plus de lignes ou moins de lignes, et j'aimerai enlevé cette range("170000") par une formule permettant de prendre que les lignes ou y'a pas de blancs

Bonjour,

si le nombre de lignes varie, on peut faire ceci:

last = [A1048576].End(xlUp).Row ' ou 65536 si XL2003

Range("A2:A" & last).Copy ' changement ici

P.

Petite question pour terminer,

Du coup mon code permet de copier deux colonnes d'un classeur A (valeur + date) et une colonne d'un classeur B (valeurs) dans un classeur C dans les colonnes a b et c

J'aimerai mtn comparer les colonnes a et c et je veux ressortir dans un nouveau classeur (ou meme dans la colonne d) toutes les valeurs de la colonne a qui ne sont pas présents dans la colonne b mais ma colonne a peut contenir plusieurs fois la meme valeur a des dates differentes et j'aimerai donc prendre la valeur avec la date la plus recente, vous avez une idée pour pas que ca copie 50 fois la meme valeur a chaque fois ? :p

Bonjour,

De nouveau, un fichier clair et bien expliqué sera le bienvenu, surtout s'il est proche du vrai fichier

P.

Rechercher des sujets similaires à "comparer deux classeurs"