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 :

Affecter une catégorie en masse aux messages d'un dossier dans Outlook 2007 [OL-2007]


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Affecter une catégorie en masse aux messages d'un dossier dans Outlook 2007
    Bonjour
    Je suis passé en Outlook 2007, où la gestion du champ catégorie a subi une franche régression: la saisie n'est plus libre, et il faut au moins 3 clics (moi qui ne suis pas un adepte de la souris...) pour affecter à un mail une catégorie qui n'était pas dans les 15 dernières utilisées.

    Pour garder un moyen de classer mes mails le plus rapidement possible j'aurais besoin d'affecter via une macro la même catégorie à tous les éléments d'un dossier.
    En naviguant sur ce site j'ai pu faire ce petit bout de code:

    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
    Sub essai()
     
    'Déclaration des Objets et variables
    Dim MonApply As Outlook.Application
    Dim Expl As Explorer
    Dim myNameSpace As NameSpace
    Dim myFolder As MAPIFolder
    Dim myItems As Items
    Dim xi As Integer
     
    'Instance des Objets
            Set MonApply = Outlook.Application 'Application Outlook
     
            'Expl nous donne le dossier courant
            Set Expl = ActiveExplorer
            'Permet d'accéder à toutes les données Outlook qui y sont stockées
            Set myNameSpace = MonApply.GetNamespace("MAPI")
     
            'On recupère l'ID du dossier courant puis on se positionne dans ce dossier
            'pour recupérer tous les messages
            Set myFolder = myNameSpace.GetFolderFromID(Expl.CurrentFolder.EntryID)
     
            'La variable myItems prendra comme valeur
            'tous les messages du dossier courant
     
            Set myItems = myFolder.Items
     
           For xi = 1 To myItems.Count
                myItems.Item(xi).Categories = myFolder.Name
     
            Next xi
     
    End Sub
    En le testant dans un dossier, j'observe les choses suivantes:
    - la mise à jour n'est pas fait pour tous les messages
    - elle n'est faite que pour le message qui est sélectionné dans le dossier courant, et encore seulement s'il n'y avait pas de catégorie renseignée
    - et pour s'apercevoir que ça a été fait sur ce mail, il faut sélectionner un autre mail, comme si la modif ne devenait effective dans l'affichage que quand le message perd le focus.

    Est-ce que quelqu'un pourrait m'aider?
    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut pas trouvé non plus
    bonjour,
    je n'ai pas trouvé ce qui clochait dans votre code.
    effectivement seul le message sélectionné se voit attribué une catégorie....
    avez vous trouvé une solution ?
    d'avance merci !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    bonjour,
    je ressors ce vieux thread car j'ai trouvé la solution

    dans le for xi... il suffit de rajouter la ligne
    myItems.Item(xi).save après avoir attribué la catégorie.
    et hop ça marche.
    merci quand même pour le code original, ça m'a bien aidé

    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
    Sub essai()
     
    'Déclaration des Objets et variables
    Dim MonApply As Outlook.Application
    Dim Expl As Explorer
    Dim myNameSpace As NameSpace
    Dim myFolder As MAPIFolder
    Dim myItems As Items
    Dim xi As Integer
     
    'Instance des Objets
            Set MonApply = Outlook.Application 'Application Outlook
     
            'Expl nous donne le dossier courant
            Set Expl = ActiveExplorer
            'Permet d'accéder à toutes les données Outlook qui y sont stockées
            Set myNameSpace = MonApply.GetNamespace("MAPI")
     
            'On recupère l'ID du dossier courant puis on se positionne dans ce dossier
            'pour recupérer tous les messages
            Set myFolder = myNameSpace.GetFolderFromID(Expl.CurrentFolder.EntryID)
     
            'La variable myItems prendra comme valeur
            'tous les messages du dossier courant
     
            Set myItems = myFolder.Items
     
           For xi = 1 To myItems.Count
                myItems.Item(xi).Categories = myFolder.Name
                myItems.Item(xi).save
            Next xi
     
    End Sub

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

Discussions similaires

  1. [OL-2007] Une macro pour compter le nombre de pièces jointes dans outlook 2007
    Par lafifine dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 19/11/2013, 12h17
  2. [OL-2007] Importer une liste de contact dans outlook 2007 à partir de EBP ?
    Par quaresma dans le forum Outlook
    Réponses: 0
    Dernier message: 15/04/2010, 20h57
  3. [OL-2007] CDO.Message - perte des styles sous Outlook 2007
    Par cgeox dans le forum Outlook
    Réponses: 1
    Dernier message: 31/07/2009, 11h19
  4. [OL-2007] Importer catégories dans outlook 2007
    Par loictreguy dans le forum Outlook
    Réponses: 0
    Dernier message: 28/04/2009, 14h16
  5. Envoyer message ne marche pas dans Outlook
    Par gwenagan dans le forum Outlook
    Réponses: 5
    Dernier message: 10/07/2007, 16h38

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