comparer une colonne présente dans plusieurs fichiers

dehlio

XLDnaute Nouveau
Bonjour,

Comme je vois que les problèmes restent rarement sans solution sur ce forum, j'en profite pour exposer quelque chose que j'ai du mal à réaliser.

J'ai mis en pièces jointes un ensemble de fichiers pour aider à comprendre mon cas.

Je reçois une fois par semaine un fichier du type "fichier 1.xls", "fichier 2.xls" et "fichier 3.xls". Ces trois fichiers représentant 3 semaines différentes. A noter que la structure est la même à chaque fois avec la colonne C comme clé primaire (Référence).

J'aimerais de manière automatique (le mot magique) arriver à regrouper dans un même classeur et pour plusieurs références la colonne U de chaque fichier (1, 2 et 3). Le fichier "Comparatif.xls" montre la cible de ce que je souhaite visualiser et comparer.

Dans cet exemple il y a trois fichiers à comparer mais est-il possible de l'étendre à plus?

J'espère que c'est clair et vous remercie d'avance pour vos pistes...

A ++
 

Pièces jointes

  • dehlio.zip
    48.5 KB · Affichages: 33

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : comparer une colonne présente dans plusieurs fichiers

Bonjour Dehlio,

voici un code trouvé sur le site de Jacques Boisgontier Formation Excel VBA JB et qui correspond au début de ta demande
J'aimerais de manière automatique (le mot magique) arriver à regrouper dans un même classeur
Code:
[B]Synthèse de plusieurs classeurs (vendeur1.xls,vendeur2.xls,....dans un seul)[/B]
 
Sur cet exemple, nous consolidons plusieurs classeurs d'un répertoire ayant un nom générique [B]Vendeurxxx.xls[/B] dans un seul classeur.
Sub consolideClasseurs()
  ChDir ActiveWorkbook.Path
  Set classeurMaitre = ActiveWorkbook
  sup
  nf = Dir("vendeur*.xls")
  Do While nf <> ""
      Workbooks.Open Filename:=nf
      Sheets(1).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
      classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = nf
      Workbooks(nf).Close False
      nf = Dir     ' classeur suivant
  Loop
  Sheets(1).Select
End Sub
Sub sup()
  Application.DisplayAlerts = False
  If Sheets.Count > 1 Then
    Sheets("Accueil").Move before:=Sheets(1)
    Sheets(2).Select
    For i = 2 To Sheets.Count
      ActiveSheet.Delete
    Next i
  End If
End Sub

à+
Philippe
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 545
Messages
2 089 484
Membres
104 181
dernier inscrit
Mateke