NEED Your HELP ! Comparer 2 gros fichiers/XlS 2016

Fermé
niko1963 Messages postés 5 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 8 mai 2018 - 8 mai 2018 à 09:15
 niko1963 - 9 mai 2018 à 14:45
Bonjour,

Je dois comparer 2 fichiers (20 rubriques format 'char', clé de 2 zones de 15 caractères) , et disposer de :
1/ la liste des lignes idem,
2/ la liste des lignes différentes,
2b// ... Avec , si possible, en colorant les rubriques modifiées.

Le fichier est volumineux (30000 lignes) .

Je choisis XLS pour disposer d'une présentation claire , directement utilisable.

Mais je ne sais comment procéder pour réussir cette comparaison .

Pourriez vous m'aider ?

Merci a tous .

Nicolas (Montpellier)

A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 8 mai 2018 à 10:32
bonjour,

NEED Your HELP , pourquoi en anglais pour dire "besoin d'aide ?"

où de trouve les 2 fichiers l'un par rapport à l'autre ?

20 rubriques format 'char', clé de 2 zones de 15 caractères
c'est à dire ?
char ? plutôt access ?

sans voir les 2 classeurs, difficile de t'aider

pour cela
Mettre les classeurs sans données confidentielles en pièce jointe sur
https://mon-partage.fr/
Puis faire un clic droit copier le raccourci et coller dans votre message

des extraits de 5000 lignes feront l'affaire

en attendant: une méthode de comparaison de 2 listes (m^fichier) qui pourra te monter une méthode (10 000 lignes comparées en 0,25 secondes)
https://mon-partage.fr/f/ZTlAE1xp/


0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
8 mai 2018 à 17:33
Bonjour Michel,

Tu peux gagner 10% ,de rapidité en remplaçant :
If Not dico1.exists(ref) Then
    dico1.Add ref, ref
End If
Par
dico1(ref) =  ref


cdlt
Patrice
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
8 mai 2018 à 17:50
En bien plus rapide avec :
'....
With Sheets(1)
    derlig1 = .Range("A65536").End(xlUp).Row
    Set dico1 = CreateObject("Scripting.Dictionary")
    liste1 = Application.Transpose(.Range("A2:A" & derlig1).Value)
    For cptr = LBound(liste1) To UBound(liste1)
      dico1(liste1(cptr)) = liste1(cptr)
    Next
    nbre1 = dico1.Count - 1
    liste1 = dico1.items
End With

With Sheets(2)
    derlig2 = .Range("A65536").End(xlUp).Row
    Set dico2 = CreateObject("Scripting.Dictionary")
    liste2 = Application.Transpose(.Range("A2:A" & derlig2).Value)
    For cptr = LBound(liste2) To UBound(liste2)
      dico2(liste2(cptr)) = liste2(cptr)
    Next
    nbre2 = dico2.Count - 1
    liste2 = dico2.items
End With
'....
0
Merci Michel pour ce retour rapide.

Pour l’anglicisme, désolé, le français aurait suffit, vous avez raison.

Je posterai au plus tôt les données - que je n'ai pas sur moi ...- .
Je suppose que le fichier comparer_v3 comporte une partie programme en VBA (prenant les données en feuill1 / feuill2 et les restituant en feuill3 ), qu'il me faudra modifier, pour adapter le fic XLS à mon cas ?
Comment visualiser ce code ?

ND
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776 > niko1963
8 mai 2018 à 19:20
Alt+F11
0
niko1963 Messages postés 5 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 8 mai 2018
8 mai 2018 à 19:30
Merci .
(Avec une tablette, j'etais manchot ...)
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
8 mai 2018 à 18:16
Bonjour

OK, merci: ça donne combien avec ta méthode ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
8 mai 2018 à 19:22
0,10 secondes
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
9 mai 2018 à 11:43
Bonjour

Bien vu! chez moi à peu près le même temps 0,125

je fourgonne ta solution, merci
0
Un grand merci à tous.

En fait, je vais utiliser la fonction "compare" de W365 ; ça marche très bien.
https://www.youtube.com/watch?v=c4Wj2xuL0UQ



Nicolas DUBELSKI
0