IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Impression de tous les contacts appartenant à des listes de distribution imbriquées


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 24
    Points : 16
    Points
    16
    Par défaut Impression de tous les contacts appartenant à des listes de distribution imbriquées
    J'ai une grande liste de distribution ("GROSSE LISTE") contenant des listes de distributions imbriquées ("PETITE LISTE A", "PETITE LISTE B", etc.) Actuellement, pour imprimer tous les contacts contenus (indirectement) dans la GROSSE LISTE, il faut imprimer chaque PETITE LISTE imbriquée une par une. Il faut donc :
    -Cliquer sur GROSSE LISTE
    -Cliquer sur chacune des PETITE LISTE
    -Imprimer les contacts contenus dans chaque PETITE LISTE



    Je dois programmer une macro qui puisse imprimer en un clic tous les contacts des listes de distribution imbriquées dans la grosse liste. Etant donné qu'il semble impossible de récupérer les listes imbriquées dans une autre liste de distribution, y a-t-il quand même un espoir en VBA ou une fonction Outlook qui m'aurait échappé ?

    Je pense que le mieux serait de programmer une macro qu'on déclencherait une fois la GROSSE LISTE ouverte. Cette macro simulerait des clics sur chacune des petites listes, et cliquerait sur "Imprimer", puis "Fermer" pour chacune d'entre elle. Malheureusement, sur Outlook, on ne peut pas faires des enregistrements de macro (pas d'option "Nouvelle macro" > "Enregister une macro", comme sur Excel ou Word (à part dans le corps d'un email).

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,

    Pourquoi veux tu imprimer tes listes ?

    Voici un code qui doit pouvoir faire cela il créé un Email avec la liste , tu pourrais aussi ajouter cette liste à un mail existant.

    Attention je pense qu'il faut que les Listes de distributions soient dans le même dossier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    Public RESULTAT As String
     
    Sub CheckDistList()
    '---------------------------------------------------------------------------------------
    ' Procedure : CheckDistList
    ' Author    : Joseph Montecillo   modifié par Oliv'
    ' Date      : 10/10/2008
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
         myDistList = InputBox("Indiquez le nom de la liste de distribution", , "test_2 listes")
     
         Set objContactFolder = GetMAPIFolder(InputBox("Indiquez le chemin du DOSSIER CONTACTS", , "Boîte aux lettres - Olivier /Contacts/Perso"))
         Dim str As String
         str = "[FullName] = " & Quote & myDistList & Quote
         Set objContact = objContactFolder.Items.Find(str)
         RESULTAT = ""
         If Not TypeName(objContact) = "Nothing" Then
            If objContact.Class = 69 Then ' olDistributionList
             ProcessDistributionList objContactFolder, objContact
           End If
         End If
         'MsgBox RESULTAT
         Set objApp = Outlook.Application
         Dim l_Msg As Outlook.MailItem
         Set l_Msg = objApp.CreateItem(olMailItem)
         l_Msg.BodyFormat = olFormatPlain
         l_Msg.Body = RESULTAT
         l_Msg.Display
    End Sub
     
    Function ProcessDistributionList(ByRef objContactFolder, objContact)
    '---------------------------------------------------------------------------------------
    ' Procedure : CheckDistList
    ' Author    : Joseph Montecillo   modifié par Oliv'
    ' Date      : 10/10/2008
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
         Dim y
         Dim membre As Recipient
        ' MsgBox("Is distribution list")
     
         For y = 1 To objContact.MemberCount
         Set membre = objContact.GetMember(y)
            RESULTAT = RESULTAT & vbCr & "Dist List = " & objContact & "/" & membre.Name _
            & " /<" & membre.Address & ">"
            If membre.Address = "Unknown" Then
            Dim distrlist As DistListItem
            Dim str
            str = "[FullName] = " & Quote & membre.Name & Quote
            Set distrlist = objContactFolder.Items.Find(str)
            ProcessDistributionList objContactFolder, distrlist
            End If
     
        Next y
    End Function 
     
    Function Quote()
      Quote = Chr(34)
    End Function
     
    Function GetMAPIFolder(strName)
    '---------------------------------------------------------------------------------------
    ' Procedure : CheckDistList
    ' Author    : Joseph Montecillo   modifié par Oliv'
    ' Date      : 10/10/2008
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
        Dim objNS
        Dim objFolder
        Dim objFolders
        Dim arrName
        Dim I
        Dim blnFound
     
        On Error Resume Next
     
        Set objNS = Application.GetNamespace("MAPI")
     
        arrName = Split(strName, "/")
        blnFound = True
        Set objFolders = objNS
     
        For I = 0 To UBound(arrName)
           Err = 0
            Set objFolders = objFolders.Folders(arrName(I))
            If Err <> 0 Then
               MsgBox ("Fatal: (" & strName & ")" & vbCrLf & _
                 " Failed to Access folder " _
                            & arrName(I) & vbCrLf & " " & Err.Description)
               blnFound = False
               Exit For
            End If
        Next
        If blnFound = True Then
          Set GetMAPIFolder = objFolders
        Else
          Set GetMAPIFolder = Nothing
        End If
        Set objNS = Nothing
        Set objFolders = Nothing
    End Function

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse. Je n'ai toujours pas résolu ce problème... J'ai testé plusieurs fois ton code, mais il ne correspond pas vraiment aux besoins des utilisateurs.

    En fait, ce sont les utilisateurs qui veulent pouvoir imprimer tous les contacts de la grosse liste en un seul clic, sans avoir à parcourir toutes les petites listes imbriquées et à les imprimer une par une...

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    SAlut,
    et ils ne peuvent pas imprimer le mail ainsi créé ?
    tu peux ajouter cela pour imprimer sur l'imprimante par defaut.

Discussions similaires

  1. exporter tous les contacts des utilisateurs
    Par grinder59 dans le forum Exchange Server
    Réponses: 0
    Dernier message: 20/12/2007, 15h41
  2. Active directory : Comment extraire la liste de tous les contacts?
    Par Asriel01 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 12/07/2007, 12h32
  3. Réponses: 42
    Dernier message: 04/08/2006, 23h36
  4. récupération de tous les contacts d'un compte mail
    Par 3psilOn dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 16/03/2006, 20h42
  5. Enlever tous les M&Mme des enregistrements
    Par marc olivier dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/07/2003, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo