Accueil > Forum > > > > [VBA Outlook] Importation de contact - avancé
[VBA Outlook] Importation de contact - avancé
mardi 25 juillet 2006 à 09:32:30 |
[VBA Outlook] Importation de contact - avancé

kojak64
|
Bonjour, Voilà mon soucis, je développe une API pour outlook qui permet d'exporter et importer les differents dossier de contact d'outlook, et même chose pour les calendrier. L'exportation, pas de soucis mais en revanche, je n'arrive pas à importer un contact dans un dossier précis. En effet, toute les sources, exemples et cours que j'ai pu trouver expliquent comment ajouter un contact dans le dossier par défaut. D'ou ma question : La commande "ContactItem.save()" sauve le contact dans le defaultFolder. Comment puis-je lui spécifier que je veux le sauver dans un dossier de contact annexe ? merci bonne vacances à ceux qui en ont
|
|
mardi 25 juillet 2006 à 10:19:12 |
Re : [VBA Outlook] Importation de contact - avancé
|
mardi 25 juillet 2006 à 10:26:25 |
Re : [VBA Outlook] Importation de contact - avancé

kojak64
|
La seule chose que j'ai pu tiré de cette fonction, c'est l'enregistrement du contact dans un fichier .txt sur mon disque. Si c'est possible de passer par cette fonction, j'ai pas compris comment...
Peut etre avec le type remarque..., je vais voir merci
|
|
mardi 25 juillet 2006 à 14:32:38 |
Re : [VBA Outlook] Importation de contact - avancé

loulou69
|
Réponse acceptée !
Bonjour
Je me suis attaqué à ton problème à la pause de midi. 2 heures de programmation et de test et voilà !
Il faut ouvrir un dossier contact existant ou le créer si il n'existe pas.
Ensuite il faut créer un contact dans ce dossier
Sub main()
GetOutlookContacts ("Dossiers personnels\Contacts")
End Sub
Public Function GetOutlookContacts(sLocation As String)
On Error GoTo Hell
Dim objOutlook As Outlook.Application
Dim objFolder As Outlook.MAPIFolder
Dim objAllContacts As Outlook.Items
Dim Contact As Outlook.ContactItem
'For look through the folders
'Dim colFolders As Outlook.Folders
' Set the application object
Set objOutlook = New Outlook.Application
' Set the default Contacts folder
Dim objNamespace As Outlook.NameSpace
Set objNamespace = objOutlook.GetNamespace("MAPI")
'Set objFolder = objNamespace.GetDefaultFolder(olFolderContacts) 'default Contact Folder
'Set objFolder = GetFolder("Personal Folders\Contacts") 'special client
Set objFolder = GetFolder(sLocation) 'special client
'folder (alternate method)
'Make sure the folder was found
If objFolder Is Nothing Then GoTo EXIT_FOR
'Enumerate All contacts in the main MAPI folder
lNumContacts = EnumerateContacts(objFolder)
Set Contact = objOutlook.CreateItem(olContactItem)
Call SetContactInfo(sLocation, Contact, "Toto", "toto@free.fr", "Paris", "Fb St-honore")
Contact.Move objFolder
Contact.Display
'Loop through all of the sub folders of the contacts
'Dim Folder As Outlook.MAPIFolder
'Set colFolders = objFolder.Folders
'Check for valid sub folders
'If colFolders Is Nothing Then GoTo EXIT_FOR
'For Each Folder In colFolders
'Debug.Print Folder.Name
'Get all contacts from this folder
'EnumerateContacts Folder
'Check for child folders
'EnumerateFolders Folder
'Next
EXIT_FOR:
'Cleanup
Set objOutlook = Nothing
Set objFolder = Nothing
Set colFolders = Nothing
Exit Function
Hell:
MsgBox Err.Description & Err.Number
GoTo EXIT_FOR
End Function
Private Function EnumerateFolders(objParentFolder As Object) As Integer
Dim colchildFolders As Outlook.Folders
Dim ChildFolder As Outlook.MAPIFolder
Set colchildFolders = objParentFolder.Folders
If colchildFolders.Count <> 0 Then
For Each ChildFolder In colchildFolders
'Debug.Print ChildFolder.Name
'Attemp to get contacts from folder
EnumerateContacts ChildFolder
'Check for child folders
EnumerateFolders ChildFolder
Next
End If
'Cleanup
Set colchildFolders = Nothing
End Function
Private Function EnumerateContacts(objFolder As Outlook.MAPIFolder) As Long
'Get all contacts for a passed MAPI folder
Dim CountContacts As Long
On Error GoTo Hell
Dim objAllContacts As Outlook.Items
Dim Contact As Outlook.ContactItem
CountContacts = 0
' Set objAllContacts = the collection of all contacts
Set objAllContacts = objFolder.Items
' Loop through each contact
For Each Contact In objAllContacts
Debug.Print objFolder & ": " & Contact.FullName
CountContacts = CountContacts + 1
Next
'Cleanup
Set objAllContacts = Nothing
EnumerateContacts = CountContacts
Exit Function
Hell:
End Function
Private Function GetFolder(strFolderPath As String) As MAPIFolder
' folder path needs to be something like
' "Public Folders\All Public Folders\Company\Sales"
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim colFolders As Outlook.Folders
Dim objFolder As Outlook.MAPIFolder
Dim objFolder2 As Outlook.MAPIFolder
Dim arrFolders() As String
Dim i As Long
On Error Resume Next
strFolderPath = Replace(strFolderPath, "/", "\")
arrFolders() = Split(strFolderPath, "\")
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.Folders.Item(arrFolders(0))
If Not objFolder Is Nothing Then
For i = 1 To UBound(arrFolders)
Set colFolders = objFolder.Folders
Set objFolder = Nothing
Set objFolder = colFolders.Item(arrFolders(i))
If objFolder Is Nothing Then
colFolders.Add arrFolders(i), 10 'olFolderContacts '
Set objFolder = colFolders.GetLast
Exit For
End If
Next
End If
Set GetFolder = objFolder
Set colFolders = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Function
Sub SetContactInfo(sLocalize As String, oItemContact As Outlook.ContactItem, Optional sName As String, Optional sEmail As String, Optional sAddress As String, Optional sPhone As String)
With oItemContact
.FullName = sName
If Not IsNothing(sCompany) Then .CompanyName = sCompany
If Not IsNothing(sPhone) Then .HomeTelephoneNumber = sPhone
If Not IsNothing(sEmail) Then .Email1Address = sEmail
If Not IsNothing(sJob) Then .JobTitle = sJob
If Not IsNothing(sAddress) Then .HomeAddress = sAddress
End With
' oItemContact.SaveAs sLocalize & "\" & sName, 2 'olContactItem
oItemContact.Save 'As sLocalize, 2 'olContactItem
End Sub
Public Function IsNothing(oParam) As Boolean
On Error Resume Next
Dim lResult As Boolean
lResult = False
If IsNull(oParam) Then lResult = True
If IsEmpty(oParam) Then lResult = True
If oParam = "" Then lResult = True
IsNothing = lResult
End Function
|
|
mardi 25 juillet 2006 à 16:03:59 |
Re : [VBA Outlook] Importation de contact - avancé

kojak64
|
Nikel, merci beaucoup. Tu as bossé comme un dingue. Je n'avais pas pensé à la fonction move en effet. Quand je lance ton module il me sort une erreur "Impossible de déplacer des éléments." lors de l'appel de la fonction move. Mais il copie tout de même le contact dans Outlook :s Il y a quelques retouche a faire mais je vais m'en sortir. Encore merci a toi loulou 
|
|
mardi 25 juillet 2006 à 16:32:25 |
Re : [VBA Outlook] Importation de contact - avancé

kojak64
|
Réponse acceptée !
Je reviens sur ce que j'ai dit, il me sort l'erreur uniquement quand je laisse "Dossiers personnels\Contacts" comme sLocation, si je met la location d'un dossier secondaire ("Dossiers personnels\Contacts\test" par exemple), no soucis, comme une lettre a la poste. et comme c'est ce cas là qui m'interesse...
merci, code nikel
|
|
mardi 5 février 2008 à 18:03:00 |
Re : [VBA Outlook] Importation de contact - avancé

jessiem34
|
Bonjour, Je suis intéressé par ce post. Ce n'est pas tout à fait la même chose pour moi. Je crée un mail depuis access avec outlook. Jusque là pas de problème (pièces jointes comprises). Mon souci est de proposer la possibilté d'accéder à la fenêtre "Choisir des noms" (lorsque l'on clique sur le bouton "à..." par exemple, de manière à accéder au carnet d'addresses. Ce qui m'intéresse particulièrement c'est la liste des adresses globale. Il y a tout les groupes du domaine. Je n'ai peut être pas bien compris la notion de dossier !!!! QQ1 pourrait me mettre sur la voie. Je ne veux pas lister les adresses dans une table, juste pour ouvrir cette fenêtre et récupérer la sélection. Possible d'après vous ?  jessie M 34
|
|
mercredi 25 novembre 2009 à 16:59:39 |
Re : [VBA Outlook] Importation de contact - avancé

scrapitou
|
Moi j'ai utiliser Move de la maniere suivante :
ex : oContact.Save objFolder
où oContact est un objet ContactItem
et objFolder est un objet MAPIFolder qui renseigne le dossier contact en question
voila, j'espere que ca aidera certains
|
|
mercredi 25 novembre 2009 à 17:00:49 |
Re : [VBA Outlook] Importation de contact - avancé

scrapitou
|
Desolé erreur de frappe !!! je voulais dire
Moi j'ai utiliser la méthode "Move" de la manière suivante :
ex : oContact.Move objFolder
où oContact est un objet ContactItem
et objFolder est un objet MAPIFolder qui renseigne le dossier contact en question
voila, j'espère que ca aidera certains
|
|
Cette discussion est classée dans : outlook, vba, dossier, importation, contact
Répondre à ce message
Sujets en rapport avec ce message
Créer un répertoire dans Outlook 2000 [ par Rodrigue ]
Bonjour,Je cherche comment ajouter des contacts dans Outlook 2000 dans un autre dossier que le dossier contact et tout ca, en passant par Access.Je su
importation d'un fichier CSV dans Outlook via VBA [ par spudman ]
Je cherche à effectuer une importation automatique (à l'aide d'une fonction) d'un fichier CSV dans Outlook. Je ne souhaite pas utiliser l'assistant d'
Utilisation des dossier de contact outlook [ par Zachs ]
Bonjour, j'ai une appli qui va me chercher mes contact dans le dossier par default et je voudrai savoir comment permettre a l'utilisateur de choisir l
[VBA OUTLOOK] Importation / Exportation [ par NooD ]
Bonjour,Je cherche à importer un carnet d'adresse à chaque démarrage d'Outlook, j'ai cherché différentes méthodes mais rien de concrèt (ou qui fonctio
Ajout d'un dossier dans OUtlook avec VBA D'Access 2003 [ par jeanlemeilleur ]
Bonjour ma question est celle-ci. J'aimerais pouvoir ajouter un nouveau dossier dans la section INBOX d'Outlook d'une boite de réception partagée.
Outlook VBA - comment acceder à un dossier partage [ par scrapitou ]
Bonjour a tous, j'ai développée une macro permettant de copier les elements contact entre deux dossiers sans doublons et sans liste de distribution.
VBA Outlook : execution d'une fonction à la création d'un contact [ par Darktruff ]
Bonjour!! Je voudrais savoir si il est possible d'exécution une fonction a la création ou modification d'un contact. Cordialement, Darktruff
Outlook VBA - Sauvegarde contacts avec Methode save dans un dossier precis [ par scrapitou ]
Bonjour, Tout d'abord, je precise que j'ai appris le VB hier et que je ne suis pas programmeur. donc je m'excuse d'avance si j'utilise a tort certain
outlook vba backup/sauvegarde module [ par forX ]
il y a t'il une facon de faire une macro qui sauvegarde les modules/class modules, de OUTLOOK (pas excel) qqc comme Project1.module(i).saveAs XXXXX
VBA Outlook, creation dosssier sur exchange [ par boir1cou ]
Bonjour, Je voudrais savoir si il existe une fonction qui permet d'ouvrir la fenêtre "clique droit -> nouveau dossier" sous Outlook 2003. Je connais
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|