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 :

Script de classement des règles par ordre alphabétique [OL-2010]


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Script de classement des règles par ordre alphabétique
    Bonjour,

    J'utilise pas mal les règles de classement d'emails dans Outlook et pour m'y retrouver, j'aimerais qu'elles soient classées par ordre alphabétique (Outlook les classent naturellement par ordre de création puisque c'est également l'ordre dans lesquelles elles s'exécutent (avec possibilité de priorité ou de non exécution des règles suivantes si un événement se réalise...).

    Mais dans mon cas, la priorité n'est pas nécessaire et pour m'y retrouver, je voudrais les avoir par ordre alphabétique, ce qu'Outlook ne propose pas (Il faut le faire à la main, et c'est loin d'être ergonomique, un clic vers le bas pour un rang vers le bas, même pas moyen de faire défiler pour emmener une règle là où je veux ).

    je cherche donc un script que j'exécute de temps à autre (ou qui s'exécute à l'ouverture ou fermeture de outlook par exemple ou encore après création de règle) qui me permette de classer les règles de classement (oui, classer des trucs qui aident à classer, je touche le fond, je sais ) par ordre alphabétique.

    Merci d'avance pour vos conseils.

    Gabriel.
    XP/Outlook 2010

  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,
    voici comment changer l'ordre

    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
    Private Sub ListRules()
        Dim oSession As Outlook.NameSpace
        Dim oRule As Outlook.Rule
        Dim oRules As Outlook.Rules
        Dim oPA As Outlook.PropertyAccessor
     
        Set oSession = Application.Session
        Set oRules = oSession.DefaultStore.GetRules()
     
        For Each oRule In oRules
            ' If oRule.Name = "HomeTime" Then
            ' oRule.ExecutionOrder = 3
            ' Exit For
            ' End If
            oRule.ExecutionOrder = 3
        Next
        oRules.Save
    End Sub
    il te faut ajouter la fonction de tri

  3. #3
    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
    Allez comme je suis Sympa voici le tri avec
    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
    Private Sub ListRules()
        Dim oSession As Outlook.NameSpace
        Dim oRule As Outlook.Rule
        Dim oRules As Outlook.Rules
        Dim oPA As Outlook.PropertyAccessor
     
        Set oSession = Application.Session
        Set oRules = oSession.DefaultStore.GetRules()
     
    Dim i
    Dim a()
      ReDim a(oRules.Count - 1)
      For i = 0 To oRules.Count - 1
      a(i) = oRules(i + 1).Name
      Next i
      Call TriShellMetzner(a())
        For Each oRule In oRules
     For i = 0 To UBound(a)
     If oRule.Name = a(i) Then
            oRule.ExecutionOrder = i + 1
            Exit For
    End If
    Next i
        Next
        oRules.Save
    End Sub
     
    'Option Compare Text
     
     
     
    Sub TriShellMetzner(a())
    'http://boisgontierjacques.free.fr/pages_site/tableaux.htm#TriDecroissant
      Dim inc As Long, i As Long, j As Long, n As Long
      Dim inv As Boolean, tmp As Variant
      n = UBound(a)
      inc = n \ 2
      Do While inc <> 0
        For i = 1 To n - inc
           j = i
           inv = True
           Do While j > LBound(a) - 1 And inv
             inv = False
             If a(j) > a(j + inc) Then
                tmp = a(j): a(j) = a(j + inc): a(j + inc) = tmp: inv = True
                j = j - inc
             End If
           Loop
        Next i
        inc = inc \ 2
      Loop
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Job done !!!
    Je viens de me replonger dedans (enfin, j'ai copié-collé ton script :p ) et je n'ai plus qu'a te dire merci, c'est parfait

    Gabriel

  5. #5
    Candidat au Club
    Homme Profil pro
    commerçant
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : commerçant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Comment faire ?
    Bonjour,

    C'est exactement ce dont j'aurais besoin.

    Voilà quelques jours que j'essaye de bricoler quelquechose, mais malheureusement , je n'ai aucune idée comment intégrer ces règles dans mon Outlook.

    Est-ce que quelqu'un pourrait m'indiquer en détail comment procéder. (dans un genre de "Pas à Pas pour les Nuls") ?

    Merci d'avance

    Gérard

  6. #6
    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
    Bonjour,
    Tu ouvres Visual Basic alt+f11
    Tu fais "Insertion" /module
    Tu copies le code du post #3
    dans ce module
    Tu lances la macro "ListRules" en cliquant dans le code puis en faisant au clavier F5 OU PAR LE MENU Macro de l'onglet développeur.

  7. #7
    Candidat au Club
    Homme Profil pro
    commerçant
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : commerçant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Deux blocs de A à Z ?
    Bonjour,

    Merci beaucoup pour les explications bien claires et grâce auxquelles j'ai réussi à faire fonctionner la macro.

    Il subsiste un petit problème : les règles se sont divisées en 2 groupes, le premier d'env.250 règles et le second d'env. 150., chacun de A à Z. J'ai constaté que le 1.groupe commençait par des lettres minuscules et le second par des majuscules
    Y a-t-il un moyen de faire ignorer la casse à la macro ?

    Merci d'avance

    Gérard

  8. #8
    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
    Bonjour,
    Tout en haut de ton module tu mets


  9. #9
    Candidat au Club
    Homme Profil pro
    commerçant
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : commerçant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut erreur de compilation
    Bonjour,

    Dans votre réponse sur le le forum il y a juste la ligne : "Option Compare Texte" ,
    mais dans le message reçu par e-Mail il y a en tout 7 lignes et ça commence par <div class="bbcode_container..........
    J'ai inséré ces 7 lignes au-dessus de l'autre macro, mais j'ai chaque fois le message "Erreur de compilation"
    Que dois-je faire ?

    Meilleures salutations

    Gérard

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour,

    tu est sur un forum, regarde le message affiché sur le forum ....

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Gérant
    Inscrit en
    Juin 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Juin 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    Bonjour,
    Tu ouvres Visual Basic alt+f11
    Tu fais "Insertion" /module
    Tu copies le code du post #3
    dans ce module
    Tu lances la macro "ListRules" en cliquant dans le code puis en faisant au clavier F5 OU PAR LE MENU Macro de l'onglet développeur.
    Bonjour
    Merci pour ton aide. Dans mon Outlook j'ai plusieurs comptes avec des différentes adresse mails. A priori ton code fait bien le tri dans les règles du compte principal. Est ce possible d'adapter ce code aux autres comptes ?
    Merci d'avance pour ton aide.

    Cordialement
    gfdreyer

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

Discussions similaires

  1. Ouvrir des fichiers par ordre alphabétique
    Par gegadin dans le forum Général VBA
    Réponses: 2
    Dernier message: 17/09/2008, 17h25
  2. Trier des lignes par ordre alphabétique ?
    Par Evocatii dans le forum Eclipse
    Réponses: 0
    Dernier message: 11/08/2007, 11h26
  3. [MySQL] Classer des résultats par ordre alphabétique
    Par Him dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/07/2006, 14h59

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