Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 02/05/2008, 15h21   #1 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut macro pour associer une liste d'entrées journals aux contacts ayant la même société

bonjour,

je vous explique mon problème :

je viens d'importer une liste de plus de 1000 contacts dans outlook 2003 ainsi que plus de 3000 entrées journals, tous cela depuis une base de données access. Je souhait donc utiliser ma liste de contact outlook comme nouvel base de données avec un suivi des activités par contact.

Mon problème est que je n'arrive pas a lier les entrées journal aux contacts avec l'importation. Il n'y a aucune possibilité avec outlook de définir à quel contact il faut associer l'élément lors de son importation. Je cherche une solution plus rapide que de prendre les contact un par un pour leur associer les éléments journal correspondant. Pour l'instant le seul lien qu'il existe entre les fiches contacts avec les fiches entrées journal, c'est qu'ils ont le même nom de société.

Je me demandais donc s'il n'y avait pas possibilité, par l'intermédiaire d'un macro, d'associer les entrées journal aux contacts qui ont le même nom de société. Ou alors un macro qui permettrait remplir le champs "contacts" par la valeur du champs "société" a partir d'une liste d'entrées journal.

Si quelqu'un a une idée, je suis preneur !

Merci d'avance de l'intérêt que vous porté a ma question.

bonne journée a vous

Dernière modification par reptedoz ; 02/05/2008 à 16h06
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/05/2008, 11h01   #2 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Bonjour,

ce code fonctionne si tu as seulement
- des fiches contacts dans ton dossier contact et pas de liste de distribution.
- avec les dossiers par défaut de contact et de journal

Code :
Sub lien()
 
Set myNameSpace = Application.GetNamespace("MAPI")
Set JournalFolder = myNameSpace.GetDefaultFolder(olFolderJournal)
Set ContactFolder = myNameSpace.GetDefaultFolder(olFolderContact)
 
Set JournalItems = JournalFolder.items
Set ContactItems = ContactFolder.items
 
JournalItems.SetColumns ("Companies")
ContactItems.SetColumns ("Subject, CompanyName") 
 
For Each Jitm in JournalItems
 
Filtre = "[CompanyName]<>'" & Jitm.Companies & "'"
Set ritms = ContactItems.Restrict(Filtre)
For Each Citm In ritms
 
Jitm.Contact = Citm.subject
Jitm.Save
 
Next
Next
 
End Sub
Si tu as un problème avec le setcolumns tu peux la remplacer avec la méthode restrict.

A bientôt,
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/05/2008, 19h25   #3 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut

bonjour,

merci beaucoup d'avoir pris le soin de répondre a ma question, cela veux dejà dir que ce n'est pas impossible...
Je viens d'essayer mais il m'indique qu'une ou plusieurs valeurs de paramètre ne sont pas valides (erreur 440) . Je ne m'y connais pas beaucoup en prog macro, vois-tu d'où ces erreurs pourraient venir ?

En tout cas merci encore de ton attention !

a biento
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/05/2008, 11h12   #4 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Bonjour,

Code :
Sub lien()
 
Set myNameSpace = Application.GetNamespace("MAPI")
Set JournalFolder = myNameSpace.GetDefaultFolder(olFolderJournal)
Set ContactFolder = myNameSpace.GetDefaultFolder(olFolderContact)
 
Set JournalItems = JournalFolder.items
Set ContactItems = ContactFolder.items
 
For Each Jitm in JournalItems
 
Filtre = "[CompanyName]<>'" & Jitm.Companies & "'"
Set ritms = ContactItems.Restrict(Filtre)
For Each Citm In ritms
 
Jitm.Contact = Citm.subject
Jitm.Save
 
Next
Next
 
End Sub
Si tu as des numéro de ligne merci de les indiquer

A bientôt,
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/05/2008, 22h35   #5 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut

bonjour Laurent,

Merci pour ta réponse rapide !
Je viens d'essayer ton nouveau code mais lorsqu'il arrive sur les lignes
"Set JournalItems = JournalFolder.Items
Set ContactItems = ContactFolder.Items"
il fait un message d'erreur signalant des valeur non valide.

Voila la seul info que je peux te donner.

Merci pour ton aide ! a bientôt
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/05/2008, 11h22   #6 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Bonjour,

La je ne vois pas ???
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/05/2008, 23h02   #7 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 300
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

il n'y a un un s à olFolderContacts

Code :
Set ContactFolder = myNameSpace.GetDefaultFolder(olFolderContacts)

Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/05/2008, 17h30   #8 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut

merci pour ton aide, ca a passé l'erreur !

par contre maintenant lorsqu'il arrive sur For "Each Jitm In JournalItems"

il me signale une erreur 424, Objet requis. Je ne sais pas quoi faire.

Merci encore de votre aide

a bientot
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/05/2008, 20h17   #9 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 300
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

place cette ligne avant le For Each et donne nous le résultat :

Code :
MsgBox JournalItems.Count
si c'est égal à zéro c'est que que tu n'a pas d'item dans ton dossier.


Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/05/2008, 17h39   #10 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut

salut toi !

alors je viens d'essayer cela, j'ai le code suivant :

Code :
Sub lien()
 
Set myNameSpace = Application.GetNamespace("MAPI")
Set JournalFolder = myNameSpace.GetDefaultFolder(olFolderJournal)
Set ContactFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
 
Set JournalItems = JournalFolder.Items
Set ContactItems = ContactsFolder.Items
 
MsgBox JournalItems.Count
For Each Jitm In JournalItems
 
Filtre = "[CompanyName]<>'" & Jitm.Companies & "'"
Set ritms = ContactItems.Restrict(Filtre)
For Each Citm In ritms
 
Jitm.Contact = Citm.Subject
Jitm.Save
 
Next
Next
 
End Sub

Mai il me fait toujours la même erreur....

Merci encore a vous tous !

a biento

Dernière modification par Dolphy35 ; 11/05/2008 à 19h12 Motif: Balises Code (#)
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/05/2008, 18h32   #11 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut

PS : Si je n'ai pas d'item dans mon dossier, comment faire pour en créer un ?

Merci !
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/05/2008, 19h14   #12 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 300
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,


ton erreur est toujours au même endroit ou elle s'est déplacée sur cette ligne ?

Code :
MsgBox JournalItems.Count
Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/05/2008, 11h05   #13 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut

Salut,

Et bien lorsqu'il n'y avais pas ta ligne de code, il me faisait l'erreur lorsqu'il arrivait sur la ligne
Code :
For Each Jitm In JournalItems
, maintenant en insérant ta ligne, comme je l'ai montré plus haut, il me fait la même erreur 424 (objet requis) en arrivant sur cette nouvelle ligne.

voila !

Encore merci à vous !
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/05/2008, 11h15   #14 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 300
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

il y avait un petit s en trop dans tes instances :
Le code suivant fonctionne très bien chez moi

Code :
Sub lien()
 
    Set myNameSpace = Application.GetNamespace("MAPI")
    Set JournalFolder = myNameSpace.GetDefaultFolder(olFolderJournal)
    Set ContactFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
 
    Set JournalItems = JournalFolder.items
    Set ContactItems = ContactFolder.items
 
    MsgBox JournalItems.Count
 
    For Each Jitm In JournalItems
 
        Filtre = "[CompanyName]<>'" & Jitm.Companies & "'"
        Set ritms = ContactItems.Restrict(Filtre)
        For Each Citm In ritms
 
            Jitm.Contact = Citm.Subject
            Jitm.Save
 
        Next
    Next
 
End Sub
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/05/2008, 20h09   #15 (permalink)
Invité régulier
 
Date d'inscription: mai 2008
Messages: 14
Par défaut

salut tout le monde !

merci Dolphy pour ton aide... ça a réglé mon problème, j'y suis presque ! maintenant il ne bloque plus que sur la dernière ligne "Jitm.Save" où il me fait l'erreur 438 (propriété ou methode non gérée par l'objet).
Comment cela ce fait si ça marche chez toi mais pas chez moi ?

Merci a tous
reptedoz est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide