Filtrage , comparaison de 2 fichiers et affichage resultat

Bonjour,

Je suis actuellement en train de tenter le projet suivant:

Extraire des noms de fichiers vidéos listés dans deux fichiers différents, un xml et un txt, les comparer et remonter les fichiers qui sont dans l'un mais pas dans l'autre et inversement.

j'ai sur ma feuille1(xml) la copie d'un fichier "liste.xml" dans lequel je retrouve une liste de nom de fichier vidéo accompagné d'autre information dans le type :

<camion id="DémontageReservoir.mp4">
                <intro>Loading.mp4</intro>
                <thumbnail>DémontageReservoir</thumbnail>
</camion>
<camion id="ControleRoutine.avi">
                <intro>Loading.mp4</intro>
                <thumbnail>ControleRoutine</thumbnail>
</camion>
<voiture id="FiltreaHuile.mp4">
                <intro>Loading.mp4</intro>
                <thumbnail>FiltreaHuile</thumbnail>
</voiture>

et sur ma feuille2 (txt) la copie d'un txt créé par une commande "dir" qui arrive comme ceci :

03/14/2011  09:43 PM       177,580,193 DemontageReservoir.mp4
03/14/2011  09:44 PM       164,585,906 FiltreaHuile.mp4
03/15/2011  01:49 PM       166,545,186 ControleRoutine.avi
03/14/2011  10:09 PM       434,646,033 VitreAvant.mp4
03/19/2013  07:18 PM       304,451,947 Vidange.mp4

je traite ces deux fichiers afin de récupérer sur une colonne juste le nom des fichiers avec leur extension.

le fichier XML est traité par la ligne

=SI(OU(STXT(A1;NBCAR(A1)-4;3)="mp4";STXT(A1;NBCAR(A1)-4;3)="avi");STXT(A1;CHERCHE("""";A1)+1;NBCAR(STXT(A1;CHERCHE("""";A1)+1;NBCAR(A1)))-2);"")

et affiche le résultat sur la colonne G.

et le fichier txt par la ligne :

=DROITE(A1;NBCAR(A1)-CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";"")))))

et affiche le résultat sur la colonne H.

j'essaie ensuite d'utiliser une macro vba pour comparer chaque ligne extraite du fichier 1 à chaque ligne du fichier 2.

en gros, mon idée serait :

mes lignes extraites sont toute sur une même colonne pour chaque fichier donc

-faire une boucle qui dur tant que l'on a une valeur dans la colonne "H"

-récupérer cette valeur et la comparer a toute les valeurs récupéré de la même facon dans la feuille2

si on ne trouve pas de correspondance, on envoie dans un fichier la valeur suivie d'un truc genre "n'a pas été trouvé dans le txt"

- faire la même chose dans l'autre sens avec " n'a pas été trouvé dans le xml"..

pour mon module VBA, je suis parti sur un FileSystemObject.

je pense avoir trouvé certaine fonction utile pour mes différents besoin mais aucune certitude:

. récuperer la valeur d'une colonne : cells() mais je ne suis pas sur que la fonction renvoie la valeur contenue dans la cellule

.création du fichier : CreateTextFile() et WriteLine() mais je ne sais pas comment ajouter une ligne sans effacer le début.

Voila ou j'en suis pour le moment. je n'ai pas de nécessité à passer par VBA mais cela me semble obligatoire pour mon projet.

si vous aviez des conseil afin que je ne m'enlise pas dans un truc super lourd, je les écouterais (par mes yeux) avec grand plaisir.

Bonne journée à tous !

Bonjour,

tu veux vraiment le faire en vba ?

Parce qu'avec un simple nb.si() tu vois si un élément est présent dans l'autre liste.

eric

bonjour,

Je ne conaissais pas cette fonction . je teste ça tout de suite merci !

par contre, est il possible de faire une boucle sans passer par vba? C.a.d tester une cellule par rapport au valeur de toute une colonne?

Bonjour,

Pas besoin de boucle. En B1 :

=NB.SI(Feuil2!A:A;A1)

te donne le nombre de fois où est présent A1 dans Feuil2!A:A

A recopier vers le bas.

eric

Woot c'est parfait cette fonction ! je ne savais pas l'utiliser comme ça merci

du coup maintenant que j'ai en résultat 1 ou 0 ( vu que je ne peux pas avoir plusieurs fois la même ligne), il me reste a filtrer les lignes ou j'ai un 0 et de les envoyer dans un fichier.

le filtre ça va, pas de problème . par contre pour écrire les lignes récupérées dans un fichier sans passer par VBA je ne sais pas si c'est possible...

Je vais chercher ça!

Bonjour,

Si c'est à faire une fois de temps en temps tu iras plus vite avec un simple copier-coller.

eric

c'est à faire une fois tout les 3 mois.... mais sur 250 ordi

l'idée finale serait de créer un batch ou autre exécutable que l'on mette dans un dossier qui contient le fichier xml et le txt.

Quand on clique, ça remonte les deux fichiers dans Excel et ça les traite puis ça ressort le fichier final.

il reste un peu de chemin mais franchement je trouve que ça a bien avancé. c'est déjà utilisable en "mode manuel"

Bonjour,

ok, et bien tout faire en vba à ce moment là.

Mais il faudrait un classeur exemple avec tes 2 feuilles de quelques lignes.

eric

Bonjour,

je vais préparer un classeur avec ce qu'il doit contenir et j' up tout ça.

Rechercher des sujets similaires à "filtrage comparaison fichiers affichage resultat"