XL 2010 extraire les différences entre 2 fichiers excel

ledom

XLDnaute Junior
Bonjour tous,

Cela fait longtemps que je n'ai plus fait de macro sur Excel et je suis un peu perdu

Voila mon problème, j'extrais des données d'une base de données pour le stock magasin chaque semaine (plus de 3000 lignes) et je la compare avec la liste de la semaine dernière
Les ligne code article ne sont pas toujours dans le même ordre (des lignes peuvent se rajouter)
Il faut que je regarde les nouveaux articles qui se sont rajouté dans semaine 44 et les articles qui n'ont plus le même "stock tot" (colonne G) par rapport à semaine 43
Pour bien faire j'aimerais avoir un fichier avec deux listes déroulantes pour choisir les fichiers a comparer (choisis dans un répertoire C:/Extraction)
Puis qu'une macro me donne les différences entre semaine 44 et 43

Actuellement ce traitement ce fait manuellement

Merci Par avance pour votre aide

Portez vous bien et @ + ledom
 

Pièces jointes

  • semaine 43.xlsx
    10.5 KB · Affichages: 23
  • semaine 44.xlsx
    221 KB · Affichages: 13

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @ledom, @sousou :),

Une piste :
  • Le fichier joint doit être placé dans le dossier de vos fichiers extraction.
  • J'ai pris comme modèle de nom pour les fichiers extraction "Semaine *.xlsx" avec en plus le numéro de semaine en fin de nom (avant l'extension bien sûr) et ce numéro compris entre 1 et 53.
  • Un des fichiers comporte des numéros de référence en doublon : Je ne m'en suis pas occupé (à vous de fournir un fichier propre)
 

Pièces jointes

  • Extraction.zip
    240.3 KB · Affichages: 35

ledom

XLDnaute Junior
Bonjour tous

Merci pour l'aide que vous m'avez apporté en si peu de temps
Je me suis un peu trompé dans l'envoi des mes deux fichiers car pour faciliter le truc j'avais fait 2 fichiers avec seulement 20 lignes mais il se trouve qu'un de mes fichier et le fichier complet avec plus de 3000 lignes
J'ai testé le fichier de "mapomme " avec les deux fichiers complets et ça fonctionne nickel MERCI !!!
MERCI également à "sousou" pour avoir jeté un œil à ma demande et pour réponse a ta question je voulais bien voir le résultat dans un nouveau fichier (ce qui me permet de garder mes fichiers d'extractions en archives)
Est ce que je pourrais faire une petite demande pour essayer de comprendre la macro
Serait possible de rajouter quelques commentaires texte derrière les lignes pour que j'essaye de comprendre le fonctionnement du programme

Je vais tester la semaine prochaine et je reviens si problèmes ou questions

Encore Merci et @+ ledom
 

erictran

XLDnaute Nouveau
Bonjour @ledom, @sousou :),

Une piste :
  • Le fichier joint doit être placé dans le dossier de vos fichiers extraction.
  • J'ai pris comme modèle de nom pour les fichiers extraction "Semaine *.xlsx" avec en plus le numéro de semaine en fin de nom (avant l'extension bien sûr) et ce numéro compris entre 1 et 53.
  • Un des fichiers comporte des numéros de référence en doublon : Je ne m'en suis pas occupé (à vous de fournir un fichier propre)

Bonsoir le forum

J'essaye d'adapter à mon besoin le code aimablement donné par "mapomme" que je recopie partiellement ci dessous (les commentaires sont pour ma compréhension)

VB:
 'les modifiés
   For Each elem In dico1
      If dico2.exists(elem) Then ' Si pour un ID existant dans dico 1, ce même élément existe dans dico2
        
         idx1 = dico1(elem): idx2 = dico2(elem) 'stocke le n° de ligne correspondant à dico(elem) dans la variable idx
        For x = 1 To 33
           If t1(idx1, x) <> t2(idx2, x) Then n = n + 1 'code modifié pour scanner toutes les colonnes de 1 à 33
              For j = 1 To 33: res(n, j) = t1(idx1, j): Next 'remplit un tableau virtuel avec les valeurs extraites  de la feuille semaine N qui sont différentes dans feuille N1
              res(n, 1) = "modifié" 'voir comment mettre en évidence uniquement les cellules modifiées et pas uniquement avec le repère "modifié en tête de ligne
         
           End If
        Next
      End If
   Next elem

Ce code , est extrait du fichier donné par mapomme ci dessous, compare deux tableaux excel dont les valeurs sont "écrites" dans des tableaux virtuels t1 et t2.
Lorsque pour une même ID (elem) les contenus des cellules sont différentes , le code écrit en sortie un tableau de résultat :
ma compréhension est que le code remplit un tableau de résultat sur les colonnes 1 à 33 sur la boucle suivante : For j = 1 To 33: res(n, j) = t1(idx1, j)

Comme je voudrais mettre en évidence par mise en forme chaque cellule modifiée, je voudrais savoir si je peux appliquer une mise en forme sur tableau "virtuel" , sur la cellule du tableau virtuel res(n,j)

Voilà , désolé pour le vocabulaire qui n'est pas forcément le bon, je suis un néophyte mais j'espère me faire comprendre !

Merci pour votre aide !
 

Discussions similaires

Réponses
5
Affichages
342
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 085
Messages
2 085 196
Membres
102 814
dernier inscrit
JLGalley