Fusionner deux fichiers Excels

Résolu
bert2311 Messages postés 5 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 13 février 2008 - 12 févr. 2008 à 13:34
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 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.

9 réponses

zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
12 févr. 2008 à 20:06
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]
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
12 févr. 2008 à 20:35
 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
3
bert2311 Messages postés 5 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 13 février 2008
12 févr. 2008 à 20:36
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.
0
bert2311 Messages postés 5 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 13 février 2008
12 févr. 2008 à 20:40
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,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
12 févr. 2008 à 20:56
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
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
12 févr. 2008 à 23:31
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+
0
bert2311 Messages postés 5 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 13 février 2008
13 févr. 2008 à 09:37
ok merci !
0
bert2311 Messages postés 5 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 13 février 2008
13 févr. 2008 à 09:39
OK, je comprends... le réglement.


Eventuellement, peux tu me conseiller un site sur lequel je pourrais "légalement" poser ma question ?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 févr. 2008 à 11:46
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
0
Rejoignez-nous