Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

liste validation VBA dans excel (données Outlook)

naitgo

XLDnaute Nouveau
Bonjour à tous,

N'étant pas un pro en VBA, je bloque sur un code que je souhaiterai utiliser avec excel pour récupérer les informations d'un contact faisant parties de la liste des contacts Outlook. Je veux utiliser cette fonction dans le cadre de la réalisation de devis. Ce code doit me permettre d'aller chercher le nom, l'adresse, etc... du client dans les contacts Outlook.
Ce code doit afficher, dans Excel, une liste de validation des contacts Outlook, actuellement il affiche bien la liste des sociétés mais elles sont séparées par des ; et sont sur la même ligne ce qui ne permet pas d'en sélectionner une.
J'ai pas mal cherché, mais je ne trouve pas comment pouvoir les afficher ligne par ligne afin de pouvoir sélectionner un seul nom.

Quelqu'un peut-il m'aider à trouver une solution ?
D'avance je vous remercie pour votre aide.

Voici le code :

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
 
C

Compte Supprimé 979

Guest
Re : liste validation VBA dans excel (données Outlook)

Bonsoir Naitgo,

Il faut remplacer le ";" par "," en VBA

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
 
    With Range("A1").Validation
      .Delete
      .Add xlValidateList, Formula1:=Left(Resultat, Len(Resultat) - 1)
    End With
    Set Cible = Nothing
    Set dossierContacts = Nothing
    'olApp.Quit
    Set olApp = Nothing
End Sub

A+
 
Dernière modification par un modérateur:

naitgo

XLDnaute Nouveau
Re : liste validation VBA dans excel (données Outlook)

Bonjour BrunoM45,
Merci beaucoup pour ta réponse, le code fonctionne parfaitement avec cette petite modification.
J'ai encore pas mal de progrès à faire en VBA !
Encore merci !
 

Discussions similaires

Réponses
2
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…