fusion de fichiers formats différents et intitulés de colonnes différents

KROMS

XLDnaute Nouveau
Bonjour à tous,

J'ai un problème récurrent qui m'empoisonne la vie depuis pas mal de temps. J'ai passé déjà de nombreuses heures à chercher des éléments de réponse sur le site... mais comme je suis vraiment une bille, je risque d'être déjà à la retraite quand j'aurai trouvé le résultat.
80% des néophytes ont déjà du être confrontés au problème de la fusion de fichiers aux formats différents avec des intitulés différents, avec d'innombrables sources d'erreurs à la clé.

L'idée c'est d'arriver à "matcher" des champs de différents fichiers qui n'ont pas la même structure.

Explication plus concrète :
J'ai 2 fichiers de x et y colonnes qui varient avec des intitulés du type

Fichier 1
société adresse code postal ville
Azur rue de l'été 13 Cassis
Sieste & Co allée de la rivière 07 Saint-Martin



Fichier 2
companyname tel Ville
Rosé 04 04 04 04 08 Bandol
Barbecue 03 03 03 03 05 Charolais


Avec une macro, j'aimerais bien arriver à lier les infos du fichier 1 et du fichier 2.
Idéalement, une boîte de dialogue permettrait pour chaque intitulé de colonne du fichier 1 de sélectionner avec un menu déroulant l'intitulé du fichier 2 correspondant pour "matcher les champs"
Pour les intitulés de colonne non utilisés dans le fichier 2, les infos devraient être à la suite.

Seconde étape compliquée, il faudrait réussir à faire appliquer le même schéma au fichier 2
C'est à dire pour toutes les données du fichier 2, le restructurer comme le fichier 1 en mettant à la suite toutes les données des intitulés de colonne non matchés.


le résultat final devrait être du type
Source société adresse code postal ville tel
Feuil1 Azur rue de l'été 13 Cassis
Feuil1 Sieste & Co allée de la rivière 07 Saint-Martin
Feuil2 Rosé Bandol 04 04 04 04 08
Feuil2 Barbecue Charolais 03 03 03 03 05


Etape 3 : j'ai une bonne solution trouvée sur le site pour recopier à la suite le contenu de chaque fichier cf ci-dessous, mais j'aimerais tellement avoir de l'aide sur les deux premières étapes ! D'avance, merci à vous ! ! !


Sub Combine()
Dim J As Integer
Dim dl As Long
Dim x As Long
On Error Resume Next
Sheets(1).Select
Worksheets.Add ' add a sheet in first place
Sheets(1).Name = "Combined"
' copy headings
Sheets(2).Activate
Range("b1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
' work through sheets
For J = 2 To Sheets.Count ' from sheet 2 to last sheet
Sheets(J).Activate ' make the sheet active
Selection.CurrentRegion.Select ' select all cells in this sheets
' select all lines except title
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
' copy cells selected in the new sheet on last line
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
With Sheets("Combined")
dl = .Range("A65536").End(xlUp).Row
For x = dl To 2 Step -1
If .Cells(x, 1).Value = 0 Then .Rows(x).Delete
Next x
End With
End Sub
 

Pièces jointes

  • casse pied 1.xlsm
    16.2 KB · Affichages: 35
  • casse pied 1.xlsm
    16.2 KB · Affichages: 39
  • casse pied 1.xlsm
    16.2 KB · Affichages: 37

Yaloo

XLDnaute Barbatruc
Re : fusion de fichiers formats différents et intitulés de colonnes différents

Bonjour KROMS,

J'ai pas tout compris à ton histoire de boite de dialogue pour faire ton récap. ?

Je te mets une solution avec une macro permettant de mettre tes données comme sur la 4ème feuille.

A te relire

Martial
 

Pièces jointes

  • casse pied 1.xlsm
    42.7 KB · Affichages: 43
  • casse pied 1.xlsm
    42.7 KB · Affichages: 42
  • casse pied 1.xlsm
    42.7 KB · Affichages: 40

KROMS

XLDnaute Nouveau
Re : fusion de fichiers formats différents et intitulés de colonnes différents

Bonjour Martial et merci, je vais tester la chose.
Concernant l'histoire des boites de dialogues c'est une application de sirenisation qui m'a donné l'idée.
cf vidéo à l'adresse https://docs.google.com/file/d/0BxHBDhlErXqDbFNFWWFpc3N3SnM/edit?usp=sharing

L'idée idéale c'est par macro de
lister tous les intitulés de colonne du fichier 1
lister tous les intitulés de colonne du fichier 2
intégrer dans un menu déroulant tous les intitulés de colonne du fichier 2 en face de ceux du fichier 1

de sorte que l'utilisateur affecte à chaque intitulé de colonne du fichier 1 l'intitulé correspondant du fichier 2

Par exemple, j'ai des fichiers de 250 colonnes à mettre au même format et c'est assez galère

Tu verras, ce sera beaucoup plus clair avec la vidéo (hébergée sur mon Drive ; à télécharger)


Encore merci pour tout
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 180
dernier inscrit
Vcr