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:

Discussions similaires

Réponses
2
Affichages
283

Statistiques des forums

Discussions
312 379
Messages
2 087 762
Membres
103 661
dernier inscrit
fcleves