dmc27
XLDnaute Nouveau
Bonsoir à tous les forumeurs
Outlook (et d'autres sans doute) permettent de créer, pour chaque boîte e-mail, des "sous-groupes" de contacts sans duplication de la fiche contact, celle-ci reste dans le groupe principal généralement appelé "contacts". C'est pratique, puisque l'on ne corrige une fiche qu'une fois. Néanmoins, je n'ai pas trouvé le moyen de savoir pour chaque contact dans quels sous-groupes on pouvait le retrouver.
Je cherche à extraire les contacts de plusieurs boites e-mail dans outlook vers Excel, en affectant une feuille Excel pour chaque sous-groupe rencontré.
Mon objectif est de développer une application VBA qui réalisera l'extraction des contacts de plusieurs boites e-mail dans outlook vers Excel, en affectant une feuille Excel pour chaque sous-groupe rencontré. Puis une deuxième partie du projet ( formules ou VBA?) consistera à exploiter chacune de ces feuilles ( nommées du nom de chaque sous-groupes qu'elles contiendront) pour alimenter dans une feuille principale un tableau similaire à celui ci-après, dans lequel famille, collègue, client, fournisseur, footballeur sont les sous-groupes de contacts :
Bien sûr j'ai trouvé des codes sur excel-downloads, pour importer les contacts de Outlook vers Excel, même de MichelXLD himself, mais sans succès car :
- mes contacts ne sont pas que dans la première adresse e-mail, qui en l'occurrence n'en contient qu'un, et les codes essayés ne trouvent que cette première boite de contacts;
- dans le code de FAQ-Excel, bien que j'aie activé la référence Microsoft Outlook 16.0 Object Library, comme demandé, j'ai un plantage sur la ligne suivante :
Cells(j, i + 1) = dossierContacts.Items(1).ItemProperties.Item(i).Name
le message d'erreur indique :
"erreur d'exécution '-2147352560 (80020010)"
"erreur automation"
"appel incorrect"
J'ai cherché sans succès une explication sur internet. je place ci-dessous le code "piraté" à FAQ-Excel:
Merci de m'avoir lu jusque-là ! j'ai tenté de mettre le paquet pour être clair !
Bien entendu, j'attends vos réponses - nombreuses et salvatrices, j'en suis sûr - avec la plus grande impatience. Parce que là, je suis bloqué! Carrément!
Cordialement - David
Outlook (et d'autres sans doute) permettent de créer, pour chaque boîte e-mail, des "sous-groupes" de contacts sans duplication de la fiche contact, celle-ci reste dans le groupe principal généralement appelé "contacts". C'est pratique, puisque l'on ne corrige une fiche qu'une fois. Néanmoins, je n'ai pas trouvé le moyen de savoir pour chaque contact dans quels sous-groupes on pouvait le retrouver.
Je cherche à extraire les contacts de plusieurs boites e-mail dans outlook vers Excel, en affectant une feuille Excel pour chaque sous-groupe rencontré.
Mon objectif est de développer une application VBA qui réalisera l'extraction des contacts de plusieurs boites e-mail dans outlook vers Excel, en affectant une feuille Excel pour chaque sous-groupe rencontré. Puis une deuxième partie du projet ( formules ou VBA?) consistera à exploiter chacune de ces feuilles ( nommées du nom de chaque sous-groupes qu'elles contiendront) pour alimenter dans une feuille principale un tableau similaire à celui ci-après, dans lequel famille, collègue, client, fournisseur, footballeur sont les sous-groupes de contacts :
contacts monmail@moi.fr | sous-groupes | ||||
---|---|---|---|---|---|
famille | collègue | client | fournisseur | footballeur | |
Dupont Henri | x | x | |||
Durand Antoine | x | x | |||
Bruel Patrick | x | x | |||
Souchon Alain | x | ||||
Voulzy Laurent | x | x | x |
Bien sûr j'ai trouvé des codes sur excel-downloads, pour importer les contacts de Outlook vers Excel, même de MichelXLD himself, mais sans succès car :
- mes contacts ne sont pas que dans la première adresse e-mail, qui en l'occurrence n'en contient qu'un, et les codes essayés ne trouvent que cette première boite de contacts;
- dans le code de FAQ-Excel, bien que j'aie activé la référence Microsoft Outlook 16.0 Object Library, comme demandé, j'ai un plantage sur la ligne suivante :
Cells(j, i + 1) = dossierContacts.Items(1).ItemProperties.Item(i).Name
le message d'erreur indique :
"erreur d'exécution '-2147352560 (80020010)"
"erreur automation"
"appel incorrect"
J'ai cherché sans succès une explication sur internet. je place ci-dessous le code "piraté" à FAQ-Excel:
VB:
Sub ExtraireContactsOutlook()
'Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library"
'
'Créé avec Office 2007
'
Dim olApp As Outlook.Application
Dim dossierContacts As Outlook.MAPIFolder
Dim Contact As Outlook.ContactItem
Dim i As Integer, j As Integer
Set olApp = New Outlook.Application
Set dossierContacts = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
'Verifie si le dossier des contacts contient des éléments
If dossierContacts.Items.Count = 0 Then Exit Sub
'Création d'un entête dans la 1ere ligne
j = 1
For i = 0 To dossierContacts.Items(1).ItemProperties.Count - 1
Cells(j, i + 1) = dossierContacts.Items(1).ItemProperties.Item(i).Name
Next i
On Error Resume Next
'Boucle sur les éléments pour récupérer les infos
For Each Contact In dossierContacts.Items
j = j + 1
For i = 0 To Contact.ItemProperties.Count - 1
Cells(j, i + 1) = Contact.ItemProperties.Item(i).Value
Next i
Next Contact
Columns.AutoFit
MsgBox "Opération terminée."
End Sub
Bien entendu, j'attends vos réponses - nombreuses et salvatrices, j'en suis sûr - avec la plus grande impatience. Parce que là, je suis bloqué! Carrément!
Cordialement - David