Fusionner deux fichiers Excels [Résolu]

Messages postés
5
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 février 2008
- - Dernière réponse : cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
- 13 févr. 2008 à 11:46
j'ai deux fichiers EXCEL de contacts de 3000 noms, qui se présentent de la manière suivante :

Fichier 1 :
Colonne 1 / Colonne 2
Contact / attribut 1
Papa / homme
maman / femme
maman / blonde
enfant / fille

Fichier 2 :
Colonne 1 / Colonne 2
Contact / attribut 2
Papa / grand
Papa / moustache
maman / moyenne
enfant / petite

Je cherche à obtenir un seul fichier FICHIER EXCEL qui se présente de la manière suivante :

Fichier 1 + 2 :
Colonne 1 / Colonne 2
Contact / attribut 1+2
Papa / homme, grand, moustache
maman / femme, blonde, moyenne
enfant / fille, petite

Si quelqu'un pouvait m'aider....

Merci d'avance.

PS : Le but est d'importer ceci dans le gestionnaire de contacts professionnels de outlook 2007. Car j'ai l'impression qu'il faut tout importer en une fois. Il n'est pas possible d'importer sélectivement des éléments pour des contacts.
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
588
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
3
Merci
Hum la descriptions de tes fichiers est loin d'etre clair.

Perso je comprends meme pas tes files so ... pour l'aide... je suis bloqué...

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de zen69
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonsoir à tous,

Ci-dessous un exemple, en vbs, sans utiliser l'objet Excel.Application, facilement adaptable pour vb6
utilisant l'objet Dictionary et ADODB.
Reste à écrire le fichier résultat.

Option Explicit
Dim oDico
Dim aDicoKeys, aDicoItems
Dim sFile1, sFile2, sFile3
Dim sCol1, sCol2, sCol3, i

Set oDico = CreateObject("Scripting.Dictionary")

sFile1 = "D:\....\Classeur1.xls"
sFile2 = "D:\....\Classeur2.xls"
sFile3 = "D:\....\Classeur3.xls"

sCol1 = "[Contact]"
sCol2 = "[Attribut 1]"
sCol3 = "[Attribut 2]"

Call FnWriteDico(sFile1, sCol1, sCol2, oDico)
Call FnWriteDico(sFile2, sCol1, sCol3, oDico)

aDicoKeys = oDico.Keys
aDicoItems = oDico.Items

For i=0 To ubound(aDicoKeys)
    MsgBox aDicoKeys(i) &vbTab& aDicoItems(i)
Next

'Call SubWriteResult(sFile3, aDicoKeys, aDicoItems)

Set oDico = Nothing

MsgBox "fin script"

Function FnWriteDico(sFile, sField1, sField2, oDico)
   Dim oConn, oRs
   Dim MyQuery
   Dim oldDicoList
  
   MyQuery = "Select " & sField1 & "," &  sField2 & " from [Feuil1$]"
  
   Set oConn = CreateObject("ADODB.Connection")
   oConn.Open ("provider=Microsoft.Jet.OLEDB.4.0; " & "data source=" _
         & sFile & "; " & "Extended Properties=""Excel 8.0;HDR=YES;""")
  
   Set oRs = CreateObject("ADODB.Recordset")
   oRs.Open MyQuery, oConn, 1, 3 '1=adOpenKeyset, 3=adLockOptimistic

   Do Until oRs.EOF
      If oDico.Exists(Trim(oRs.Fields(0))) Then
         oldDicoList = oDico.Item(Trim(oRs.Fields(0)))
         oDico.Item(Trim(oRs.Fields(0))) = oldDicoList & ","  & oRs.Fields(1)
      Else
         oDico.Add Trim(oRs.Fields(0)), Trim(oRs.Fields(1))
      End If
      oRs.MoveNext
   Loop

   Set oRs = Nothing
   Set oConn = Nothing
  
   FnWriteDico = oDico.Items
  
End Function

jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
5
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 février 2008
0
Merci
deux fichiers :


dans les deux fichiers il y a les noms : ici papa, maman, enfant


à chacun des noms sont attachés des attributs : homme femme grand moustache


Je voudrais n'avoir qu'un seul fichier avec dans une colonne, les noms non dupliqués, et dans une deuxième colonne, leurs attribus concaténés.

C'est plus clair. Sinon, n'hésite pas, je réexplique autrement.

Dans tous les cas, merci de ton intérêt.
Commenter la réponse de bert2311
Messages postés
5
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 février 2008
0
Merci
Merci JMO,
Cela a l'air très bien (!)
Concretement, j'imaginais un code que je pourrais utiliser avec une macro Excel.
Je peux mettre ce code dans une macro ??

Pardon pour mon ignorance, mais je suis vraiment embêté et je voudrais résoudre ce pb.

cordialement,
Commenter la réponse de bert2311
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
Re,

Oui, c'est certainement possible !!!
Mais n'ayant pas vb6 et ne scriptant pas en vbe/vba, ma contribution s'arrête là.

Bon courage.

jean-marc
Commenter la réponse de cs_JMO
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
0
Merci
Salut,

Tu risques pas d'avoir les reponses que tu attends car tu n'es pas dans le bon theme.
Et un conseil : n'imagine pas trop ton code, surtout si tu penses que quelqu'un vas le faire a ta place.
Le mieux c'est de commencer et de nous dire sur quoi tu bloques. Meme si c'est : - je ne sais ou ecrire ma macro

Ne t'offusques pas de ce que je viens de dire car c'est globalement ce qui est specifé dans le reglement CS et tu l'as accepter lors de l'enregistrement.

Bon courage

A+
Commenter la réponse de bigfish_le vrai
Messages postés
5
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 février 2008
0
Merci
ok merci !
Commenter la réponse de bert2311
Messages postés
5
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 février 2008
0
Merci
OK, je comprends... le réglement.


Eventuellement, peux tu me conseiller un site sur lequel je pourrais "légalement" poser ma question ?
Commenter la réponse de bert2311
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
Regarde ma signature ...
Tu le sauras pour la prochaine fois.
Mais ne repose pas ta question sur l'autre forum. Termine celui-ci auparavant. Ça évitera de créer un doublon de la même question.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi