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 :

Rendre privé tous les contacts du carnet d'adresses [OL-2003]


Sujet :

VBA Outlook

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 151
    Par défaut Rendre privé tous les contacts du carnet d'adresses
    Bonjour à tous,
    je cherche à rendre tous les contacts du carnet d'adresses de Outlook 2003 privé.
    Le code suivant défini chaque contact comme contact privé.
    Le problème est qu'après avoir exécuté ce code tous les contacts ne sont pas privé.
    Je ne vois pas pourquoi l'exécution ne se fait pas correctement.

    Si quelqu'un à une idée ou une solution, je suis preneur.
    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
    Public Sub SetPrivateAllContacts()
    'Procédure permettant de rendre privé tous les contacts du carnet d'adresses local
     
    '********************************************'
    '************** Déclarations ****************'
    '********************************************'
        Dim oCont As ContactItem
        Dim oFold As MAPIFolder
        Dim nM As NameSpace
        Dim olApp As Outlook.Application
     
    '********************************************'
    '************* Initialisations **************'
    '********************************************'
     
        'Créer une session Outlook
        Set olApp = Outlook.Application
        'Récupérer le chemin du répertoire MAPI
        Set nM = olApp.GetNamespace("MAPI")
        'Ouvrir le dossier de contacts
        Set oFold = nM.GetDefaultFolder(olFolderContacts)
     
    '********************************************'
    '****** Rendre privé tous les contacts ******'
    '********************************************'
        For Each oCont In oFold.Items
        On Error Resume Next
            'Rendre le contact "Privé" (olNormal==0, olPrivate==2)
            oCont.Sensitivity = olPrivate
     
            'Sauvegarde de la modification
            oCont.Save
        Next oCont
     
    '********************************************'
    '*********** Libération des objets **********'
    '********************************************'
        Set oCont = Nothing
        Set oFold = Nothing
        Set olApp = Nothing
     
    End Sub
    Merci à vous.

    Willy

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 151
    Par défaut
    Voici la réponse à ma propre question.
    Le problème venait du fait qu'il existe plusieurs types d'Item dans la liste des contacts (Items). Il peut y avoir des contacts mais aussi des listes de contacts.
    Pour les différencier, VBA possède des constantes pour déterminer de quel type il s'agit.
    Voici le code pour rendre privé tous les contacts de Outlook.
    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
    Public Sub SetPrivateAllContacts()
    'Procédure permettant de rendre privé tous les contacts du carnet d'adresses local
    '********************************************'
    '************** Déclarations ****************'
    '********************************************'
        Dim oCont As ContactItem
        Dim oFold As MAPIFolder
        Dim nM As NameSpace
        Dim olApp As Outlook.Application
        Dim i As Variant
    '********************************************'
    '************* Initialisations **************'
    '********************************************'
     
        'Créer une session Outlook
        Set olApp = Outlook.Application
        'Récupérer le chemin du répertoire MAPI
        Set nM = olApp.GetNamespace("MAPI")
        'Ouvrir le dossier de contacts
        Set oFold = nM.GetDefaultFolder(olFolderContacts)
    '********************************************'
    '****** Rendre privé tous les contacts ******'
    '********************************************'
        For Each oCont In oFold.Items
            If oCont.Class <> olDistributionListItem = True And (oCont.Class <> olDistributionList) = True Then
                oCont.Sensitivity = OlSensitivity.olPrivate
                'Sauvegarde de la modification
                oCont.Save
            End If
        Next oCont
    '********************************************'
    '*********** Libération des objets **********'
    '********************************************'
        Set oCont = Nothing
        Set nM = Nothing
        Set oFold = Nothing
        Set olApp = Nothing
     
    End Sub
    A bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Récupérer tous les contacts (pas que le carnet d'adresses)
    Par bryce426 dans le forum Outlook
    Réponses: 2
    Dernier message: 05/11/2010, 16h22
  2. Comment ajouter tous les contacts d'un dossier au carnet d'adresse ?
    Par tibiz dans le forum Outlook Express / Windows Mail
    Réponses: 0
    Dernier message: 04/10/2010, 13h13
  3. Rendre readonly tous les elements d'un formulaire.
    Par lemordore dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/10/2007, 12h26
  4. 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
  5. 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

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