Comparer deux fichiers

Bonjour à toutes et à tous,

Je viens solliciter votre aide sur ce forum, après des heures d'essais sur une macro que je n'arrive pas à faire fonctionner comme je le souhaite.

Dans les grandes lignes, je dois comparer 2 fichiers Excel (A et B)et en faire ressortir les colonnes Date Initiale et Date Finale entre les numéros qui se répètent et puis faire la différence (comme il vient indique au dessous sur le Fichier C) en sachant que l'heure et la date viennent dans la même cellule donc j'imagine que pour pouvoir faire la différence il faudra séparer l'heure de la date.

Merci d'avance pour me consacrer un peu de temps, bonne journée.

FICHIER A

Numéros Date Initiale Date Finale Caractéristiques

2 01:12 01/03/2012 05:42 02/03/2012 bleu

5 02:10 01/03/2012 03:50 01/03/2012 vert

20 15:32 01/03/2012 16:32 01/03/2012 bleu

9 00:01 01/03/2012 01:12 01/03/2012 marron

8 13:26 01/03/2012 15:50 01/03/2012 noir

7 05:52 01/03/2012 06:44 01/03/2012 jaune

6 18:32 01/03/2012 19:42 01/03/2012 violet

FICHIER B

Numéros Date Initiale Date Finale Caractéristiques

40 01:14 01/03/2012 06:30 02/03/2012 bleu

50 02:20 01/03/2012 04:40 01/03/2012 rose

35 05:52 02/03/2012 06:54 01/03/2012 canela

7 00:01 01/03/2012 09:12 02/03/2012 jaune

60 14:36 01/03/2012 14:50 01/03/2012 noir

5 15:32 02/03/2012 17:32 01/03/2012 vert

56 18:32 01/03/2012 20:42 01/03/2012 violet

FICHIER C (COMPARER)

Numéros Date Initiale A Date Initiale B Date Finale A Date Finale B Différence Date Initiale Différence Date Finale

5 01/03/2012 02:10 02/03/2012 15:32 01/03/2012 03:50 01/03/2012 17:32 37h22 13h42

7 01/03/2012 05:52 01/03/2012 00:01 01/03/2012 06:44 02/03/2012 09:12 -5h51 26h28

27fichier-a.zip (4.00 Ko)
26fichier-b.zip (4.03 Ko)

Salut Josjuan et bienvenue sur le Forum,

Tout d’abord je trouve plus simple de travailler sur un seul fichier. J’ai donc rapatrié tes feuilles de base des fichiers A et B dans le fichier C. Si ça ne te convient pas, il faudra modifier un peu le code.

Ensuite je n’ai pas trouvé d’autres solutions afin d’indiquer tes heures négatives qu’en marquant la cellule en fuchsia. A nouveau, si ça ne te convient pas, on pourra continuer à creuser afin de trouver une solution autre.

Afin de faire un essai, tu cliques sur le bouton « Récapitulatif ».

A te relire.

Merci beaucoup Ivouille. Pourtant, est-ce que cela serait possible de que la macros me demande les deux fichiers pour prendre les données?

Merci d'avance.

Re-bonjour,

josjuan2001 a écrit :

Pourtant, est-ce que cela serait possible de que la macros me demande les deux fichiers pour prendre les données?

Est-ce que vraiment tu as besoin que la macro te demande les deux fichiers à traiter - ce qui ne serait le cas que si ces deux fichiers ne sont jamais les mêmes - ou les deux fichiers à traiter sont toujours les mêmes - c'est à dire qu'ils ne changent jamais de nom - mais avec des données modifiées ?

Si c'est bien le deuxième cas, est-ce que les deux fichiers à traiter sont placés dans le même dossier que le fichier C ou est-ce qu'ils peuvent être placés dans un ou des dossiers différents ?

A te relire.

Bonjour,

Tu as bien raison,au début je vais essayer de faire les comparaisons sur le même fichier.

Dans le fichier que tu avais avait,cela serait possible d'ajouter que la commune Caractéristiques vient à côté de la commune Numéros dans le fichier C de recopilation?

Merci d'avance.

Je présume que tu veux dire que sur la feuille « Récapitulatif » tu voudrais avoir en plus la colonne « Caractéristiques » ?

Si c’est bien cela, sur laquelle des deux feuilles je dois prendre l’information « Caractéristiques » ; sur la feuille « Fichier A » ou sur la feuille « Fichier B » ?

De plus, afin de ne pas devoir corriger tous les codes placés sur le premier fichier en fonction de ta première demande, il serait plus aisé de placé ton information sur les caractéristiques dans la colonne H de la feuille « Récapitulatif » ; est-ce que ça te convient ?

Merci d’être très précis dans tes communications, ça évite des erreurs et des demandes complémentaires de ma part.

A te relire.

Bonsoir,

Je suis vraiment désolé pour la confusion.

Je vous envoie ci-joint l’apparence du fichier que je cherche.

Merci pour votre aide.

28fichier-modele.zip (16.66 Ko)

Salut,

A chaque fois que tu m'écris, tu rajoutes des demandes complémentaires, alors, avant que je me lance dans les corrections de ton code, réfléchis bien si c'est les dernières volontés que tu as.

Pour la colonne "Responsable Tâches", je vais chercher l'info dans le fichier A ou dans le fichier B ??

Amicalement.

Oui, cela c'est la dernière modification.

Il faut chercher la donnée sur le fichier A(il va être le même dans les deux cas)

Bonsoir

Un peu d'humour

Yvouille a écrit :

si c'est les dernières volontés que tu as.

Et oui à force de 'fréquenter" thanatos69 cela déteint

Amicalement bien sur

Salut Josjuan, Salut Banzai,

@ Josjuan

Tu m’agasses prodigieusement Non seulement tu as changé tes demandes en ce qui concerne les colonnes à reporter, mais en plus ton nouveau fichier comporte des dates absolument bizarres à trois formats différents en plus du premier format fourni (4 cellules marquées en rouge sur la feuille « Fichier A »).

Dans le fichier ci-joint, j’ai repris – en plus de tes nouvelles lignes - quelques données selon ton premier fichier (lignes Old 5 et Old 7).

Pour ces anciennes lignes il n’y a pas de souci, par contre je vais avoir besoin d’aide pour le reste. Mais j’ai une idée derrière la tête

@Banzai

Un peu d’humour : Dans une condamnation à mort normale, le juge décide la sentence, c’est le prêtre qui recueille les dernières volontés, le bourreau coupe la tête et le croque-mort recolle les morceaux tant bien que mal et met tout ça au chaud. Thanatos ne serait donc pas supposé recueillir les dernières volontés de Josjuan – mais juste de le mettre au chaud – si ce dernier m’agace encore un peu plus et que je te le me ………

Moins rigolo : Tu vois que j’ai des problèmes avec ce fichier. Aurais-tu une idée afin que les dates reportées sur la feuille «Récapitulatif», dans les colonnes E à H, soient uniformisées et utilisables sans problème ? Pour l’instant ça bloque encore avec les dates utilisées pour calculer la colonne I de la feuille Récapitulatif à la ligne reportée pour l’identifiant « New 5 ».

Dans les grandes lignes mon code devrait faire ceci : Reporter des dates dans les colonnes E à H de la feuille « Récapitulatif » et effectuer des calculs dans les colonnes I à J en coloriant en fuchsia les calculs négatifs (ou as-tu en plus une idée afin d’inscrire des calculs négatifs d’heures simplement avec le signe moins ?).

Cordialement.

Bonjour

Désolé si j'ai ravivé une blessure

Ton code modifié

Permet d'avoir un format de date identique partout

Pour les heures négatives, il y a bien le calendrier depuis 1904, mais l'inconvénient cela décale les dates existantes de 4 ans

Je ne me suis pas trop penché dessus

A voir

Sub aa()
Dim i As Integer, j As Integer, Référence_A As String, Der_Lig As Integer
Dim WsA As Worksheet
Dim WsB As Worksheet

Application.ScreenUpdating = False
Set WsA = Sheets("Fichier A")
Set WsB = Sheets("Fichier B")
Call Tout_effacer

For i = 2 To WsA.Range("A65536").End(xlUp).Row
    Référence_A = WsA.Cells(i, 1)
    For j = 2 To WsB.Range("A65536").End(xlUp).Row
        If WsB.Cells(j, 1) = Référence_A Then
            Der_Lig = Range("A65536").End(xlUp).Row + 1
            Range("A" & Der_Lig) = Référence_A
            Range("B" & Der_Lig) = WsA.Cells(i, 2)
            Range("C" & Der_Lig) = WsB.Cells(j, 2)
            Range("D" & Der_Lig) = WsA.Cells(i, 3)

            If Left(WsA.Cells(i, 4), 2) = "WS" Then
                Range("E" & Der_Lig) = CDate(Trim(Right(WsA.Cells(i, 4), 14)))
            Else
                Range("E" & Der_Lig) = CDate(Trim(WsA.Cells(i, 4)))
            End If

            Range("F" & Der_Lig) = CDate(Trim(WsB.Cells(j, 4)))
            Range("G" & Der_Lig) = CDate(Trim(WsA.Cells(i, 5)))
            Range("H" & Der_Lig) = CDate(Trim(WsB.Cells(j, 5)))

            Range("E3:H" & i).NumberFormat = "dd/mm/yyyy hh:mm;@"

            If Range("F" & Der_Lig) > Range("E" & Der_Lig) Then
                Range("I" & Der_Lig) = Range("F" & Der_Lig) - Range("E" & Der_Lig)
                Range("I" & Der_Lig).NumberFormat = "[h]:mm:ss"
            Else
                Range("I" & Der_Lig) = Range("E" & Der_Lig) - Range("F" & Der_Lig)
                Range("I" & Der_Lig).NumberFormat = "[h]:mm:ss"
                Range("I" & Der_Lig).Interior.ColorIndex = 7
            End If

            If Range("H" & Der_Lig) > Range("G" & Der_Lig) Then
                Range("J" & Der_Lig) = Range("H" & Der_Lig) - Range("G" & Der_Lig)
                Range("J" & Der_Lig).NumberFormat = "[h]:mm:ss"
            Else
                Range("J" & Der_Lig) = Range("G" & Der_Lig) - Range("H" & Der_Lig)
                Range("J" & Der_Lig).NumberFormat = "[h]:mm:ss"
                Range("J" & Der_Lig).Interior.ColorIndex = 7
            End If
        End If
    Next j
Next i
End Sub

Re-salut Banzai,

Banzai64 a écrit :

Désolé si j'ai ravivé une blessure

Mais ne soit pas désolé, il n'y a absolument aucune blessure

Merci beaucoup pour ton coup de main ; je présume qu'ainsi Josjuan devrait avoir le code dont il a besoin, autrement je continuerai de voir ça avec lui.

Bonnes salutations.

Bonjour,

Avant tout, merci beaucoup pour votre aide.

Aujourd'hui, on m'a dit de faire quelque petite modification qui ne changerait pas beaucoup la code déjà existante.

En gros, cela consiste à ajouter des autres colonnes et c'est qui change un peu c'est qu'une donnée (MTA, MLA, MTB)vient en format heuresminutes(ex 03h25m) donc il faudrait le changer pour pouvoir faire des opérations avec.

J'ajoute le fichier pour une meilleure compréhension.

15question-3.xlsx (19.99 Ko)

Salut,

Yvouille a écrit :

......alors, avant que je me lance dans les corrections de ton code, réfléchis bien si c'est les dernières volontés que tu as.

josjuan2001 a écrit :

Oui, cela c'est la dernière modification.

J'aurais accepté de continuer à t'aider afin de parfaire le travail commencé, mais là tu repars avec de nouvelles demandes dans tous les sens. J’ai ouvert ton fichier et j’ai eu un début de nausée tellement il y avait de flèches.

Désolé, je jette l'éponge

Si personne n'intervient rapidement sur ce fil afin de t'aider, je te conseille de l'indiquer comme "Résolu" et d'en recommencer un nouveau avec tes nouvelles questions.

Cordialement.

Bonsoir,

Tout a fait vrai, c'était vraiment difficile de comprendre.

J'ai fait des modifications pour s'il y a quelqu'un qui peut encore m'aider.

Merci d'avance.

Je mets aussi le fichier avec le code le plus exacte a la demande.

14question4.xlsx (20.19 Ko)

Re,

Un peu plus claire. XD


Re,

Un peu plus claire. XD

10question-5.zip (31.83 Ko)
17question-5.zip (31.83 Ko)
Rechercher des sujets similaires à "comparer deux fichiers"