relié un classeur excel à la base contacts de Outlook

  • Initiateur de la discussion Initiateur de la discussion Margouillats
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Margouillats

Guest
Bonjour à tous,

une âme charitable serait-elle assez sympa pour m'aider à relier ma base Contacts à des classeurs Excel.

J'aimerais en fait l'utilisé comme base de contacts pour produire des documents de type devis.

Merci d'avance
 
Re : relié un classeur excel à la base contacts de Outlook

Bonjour,

Avec cette procédure :
- Sous outlook vas dans menu / fichier / exporter
- Dans la fenêtre sélectionne "exporter des données vers un fichier" et clique sur "suivant"
choisis "microsoft excel"
- sélectionne le dossier "contact" ou une autre si tes contacts sont dans un autre
- Clique sur "parcourir" pour sélectionner le répertoire et éventuellement le fichier (si tu dois en créer un nouveau, il te suffit de mettre un nouveau nom dans la rubrique "nom du fichier" en dessous)
- En cliquant sur "suivant" puis sur "champ personnalisé", tu vas pouvoir sélectionner dans une nouvelle fenêtre les champs que tu veux exporter
- Clique sur "terminer"

A te lire
 
Re : relié un classeur excel à la base contacts de Outlook

Bonjour Dan,

Tout d'abord merci pour ta réponse. Je pense ne pas mettre très bien exprimé. Ce que je veux ce n'est pas d'exporter mon carnet d'adresse mais le lier à un classeur excel pour m'en servir comme base de donnée.

Je veux que si je rentre un nouveau contact dans Outlook, je puisse l'utilisé dans mon tableau sans devoir re-exporter mes contacts Outlook.

J'espère avoir été plus clair et te remercie encore une fois pour tes lumières

A+
 
Re : relié un classeur excel à la base contacts de Outlook

bonjour à vous deux

Cet exemple Necessite d'Activer la reference Microsoft Outlook xx.x Object Library

Les 2 procédures evenementielles doivent etre placées au niveau de la feuille qui va recuperer les données.


La première partie permet de créer une liste de validation dans la cellule A1 à partir du champ "Société" contenu dans la liste des contacts Outlook.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim olApp As Outlook.Application
    Dim Cible As Outlook.ContactItem
    Dim dossierContacts As Outlook.MAPIFolder
    Dim Resultat As String
 
    If Not Target.Address = "$A$1" Then Exit Sub
 
    Set olApp = New Outlook.Application
    Set dossierContacts = _
        olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    For Each Cible In dossierContacts.Items
        Resultat = Resultat & Cible.CompanyName & ";"
    Next
 
    Range("A1").Validation.Delete
    Range("A1").Validation.Add xlValidateList, _
                Formula1:=Left(Resultat, Len(Resultat) - 1)
    Set Cible = Nothing
    Set dossierContacts = Nothing
    'olApp.Quit
    Set olApp = Nothing
End Sub


La deuxieme partie:
Lorsque tu sélectionnes un élément (nom de société) dans la cellule A1, une recherche est effectuée dans la liste des contacts Outlook pour récupérer les champs "Nom complet", "Rue", "Code postal", "Ville"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim olApp As Outlook.Application
    Dim Cible As Outlook.ContactItem
    Dim dossierContacts As Outlook.MAPIFolder
    Dim Recherche As String
 
    If Not Target.Address = "$A$1" Then Exit Sub
 
    On Error GoTo Fin
    Application.EnableEvents = False
 
    Recherche = Range("A1")
 
    Set olApp = New Outlook.Application
    Set dossierContacts = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    Set Cible = dossierContacts.Items.Find("[CompanyName] = '" & Recherche & "'")
    If Not Cible Is Nothing Then
        Range("B1") = Cible.FullName
        Range("C1") = Cible.BusinessAddressStreet
        Range("D1") = Cible.BusinessAddressPostalCode
        Range("E1") = Cible.BusinessAddressCity
    End If
 
 
Fin:
Application.EnableEvents = True
    Set Cible = Nothing
    Set dossierContacts = Nothing
    'olApp.Quit
    Set olApp = Nothing
End Sub


bonne soirée
MichelXld
 
Dernière édition:
Re : relié un classeur excel à la base contacts de Outlook

MichelXld à dit:
bonjour à vous deux

Cet exemple Necessite d'Activer la reference Microsoft Outlook xx.x Object Library

Les 2 procédures evenementielles doivent etre placées au niveau de la feuille qui va recuperer les données.


La première partie permet de créer une liste de validation dans la cellule A1 à partir de la liste du champ "Société" contenu dans la liste des contacts Outlook.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim olApp As Outlook.Application
    Dim Cible As Outlook.ContactItem
    Dim dossierContacts As Outlook.MAPIFolder
    Dim Resultat As String
 
    If Not Target.Address = "$A$1" Then Exit Sub
 
    Set olApp = New Outlook.Application
    Set dossierContacts = _
        olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    For Each Cible In dossierContacts.Items
        Resultat = Resultat & Cible.CompanyName & ";"
    Next
 
    Range("A1").Validation.Delete
    Range("A1").Validation.Add xlValidateList, _
                Formula1:=Left(Resultat, Len(Resultat) - 1)
    Set Cible = Nothing
    Set dossierContacts = Nothing
    'olApp.Quit
    Set olApp = Nothing
End Sub


La deuxieme partie:
Lorsque tu sélectionnes un élément (nom de société) dans la cellule A1, une recherche est effectuée dans la liste des contacts Outlook pour récupérer les champs "Nom complet", "Rue", "Code postal", "Ville"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim olApp As Outlook.Application
    Dim Cible As Outlook.ContactItem
    Dim dossierContacts As Outlook.MAPIFolder
    Dim Recherche As String
 
    If Not Target.Address = "$A$1" Then Exit Sub
 
    On Error GoTo Fin
    Application.EnableEvents = False
 
    Recherche = Range("A1")
 
    Set olApp = New Outlook.Application
    Set dossierContacts = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    Set Cible = dossierContacts.Items.Find("[CompanyName] = '" & Recherche & "'")
    If Not Cible Is Nothing Then
        Range("B1") = Cible.FullName
        Range("C1") = Cible.BusinessAddressStreet
        Range("D1") = Cible.BusinessAddressPostalCode
        Range("E1") = Cible.BusinessAddressCity
    End If
 
 
Fin:
Application.EnableEvents = True
    Set Cible = Nothing
    Set dossierContacts = Nothing
    'olApp.Quit
    Set olApp = Nothing
End Sub


bonne soirée
MichelXld


Merci pour cette info, je vais de ce pas essayer ce code.

Question subsidiaire : penses-tu que je puisse enregistrer ce code dans différents classeurs qui vont me servir de modèles pour de nouveaux documents type devis.

Je te remercie encore pour le temps que tu veux bien accorder à mon pb.

Margouillats
 
Re : relier un classeur excel à la base contacts de Outlook

Bonjour à toutes et tous,

Je relance ce fil n'ayant pas réussi à faire fonctionner la macro ci-dessus.

Je joins un petit fichier test.
A l'origine j'avais créé une feuille excel spécifique avec les contacts, mais si je pouvais utiliser directement les contacts d'Outlook ce serait mieux.
Merci par avance à celles et ceux qui voudront bien réfléchir sur ce sujet.
 

Pièces jointes

Re : relié un classeur excel à la base contacts de Outlook

Bonjour à toutes et tous

Je relance ce fil n'ayant pas eu de réponse positive à mes posts précédents.
Peut-être d'ailleurs n'y a-t-il pas de solution.
Si l'un, où l'une d'entre vous, pouvait se pencher sur ce problème, ça me ferait très plaisir.
Bon courage.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
282
W
  • Question Question
Microsoft 365 Suivi charge/capa
Réponses
10
Affichages
348
Réponses
10
Affichages
778
Retour