Jeudi 18 Juillet 2019  
Navigation
FAQ Outlook
» Foire Aux Questions «
Recherche
Téléchargements
Forums Outlook
Plan du site
Liens
Login

Les inscriptions sont fermées

Pseudo

Mot de passe

Se souvenir de moi



Mot de passe oublié ? Mot de passe oublié ?
Connexions
Bienvenue à [FAMACLUB]
le 1,414ème membre
Visiteurs en ligne : 4
Membres en ligne : 0

 pirobert 9 semaines
 jcgdisle 34 semaines
 EMERGENCY 55 semaines
 beaulieu 66 semaines
 callaghi 70 semaines
 Charlie76 76 semaines
 joscopp 86 semaines
 JièL 86 semaines
 julbast 87 semaines
 zorro71 111 semaines

Non activés :0

Nombre de visiteurs
depuis le : 12/11/2008

Aujourd'hui:3 856
En ligne :4
Max. en ligne:312
Max. / jour:66 529
Total hier:7 892
Total ce mois:94 278
Total visites:22 171 026
Moyenne/jour:5 686

Dernières 24h

























Publicité ; elle permet de financer le site
Voir le sujet
Poster sans créer un compte : Cliquez ici

FAQ Outlook » Outlook » VBA Outlook (fermé)
Appliquer toutes les règles
Pseudo
Mot de passe
S'enregistrer FAQ Membres Aujourd'hui Recherche

Imprimer le sujet

Il y a 445 semaines à 11:17
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
  Appliquer toutes les règles
 
Bonjour

Vous savez appliquer toutes les règles de messagerie par une macro VBA ?
Mes utilisateurs apprécieraient Smile et moi aussi Smile
Si vous avez des pistes, merci Smile
 

Il y a 445 semaines à 11:26
Membre

Messages : 218
Inscription : 08/06/10
Geo
Membre
RE: Appliquer toutes les règles
 
Bonjour

J'ai ça dans ma boite à trésors, mais aps revérifié :
Télécharger la source  Code
Sub AppliRègles()
Dim objOutlook As Outlook.Application
'Dim ObjNameSpace As NameSpace
Dim Banque As Store
Dim LesBanques As Stores
Dim Règle As Rule
Dim LesRègles As Rules
Dim NbRègles As Integer
Dim NbRèglesEx As Integer
Dim dossier As Folder
Dim objNameSpace As NameSpace

Set objOutlook = Outlook.Application
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set dossier = _
  objNameSpace.Folders("Dossiers personnels").Folders("Boîte de réception")
NbRèglesEx = 0
Debug.Print objOutlook.Session.Stores.count
Set LesBanques = objOutlook.Session.Stores
For Each Banque In LesBanques
On Error GoTo Suite
  NbRègles = Banque.GetRules.count
  On Error GoTo 0
  Set LesRègles = Banque.GetRules
  For Each Règle In LesRègles
    If Règle.Enabled Then
      Règle.Execute showprogress:=True, Folder:=dossier
      NbRèglesEx = NbRèglesEx + 1
    End If
  Next Règle
GoTo Boucle
Suite:
  Debug.Print "La banque " & Banque.DisplayName & " ne supporte pas les règles"
  Resume Boucle
Boucle:
Next Banque
MsgBox NbRèglesEx & " appliqué(e)s "
End Sub



 

Il y a 443 semaines à 12:30
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
RE: Appliquer toutes les règles
 
je viens d'essayer :

erreur d'execution '-2147221233 (8004010f)':
Impossible d'executer l'opération. impossible de trouver un objet.

Pas de ligne ciblée, rien, juste ce message :/
 

Il y a 443 semaines à 12:22
Avatar du membre

Super Administrateur

Messages : 2570
Inscription : 12/11/08
Localisation: Cassis
Âge : 18 ans
JièL
Super Administrateur
RE: Appliquer toutes les règles
 
Bonjour,

essayez de l’exécuter en pas à pas pour nous dire à quel endroit ça coince.
 
JièL / Jean-Louis Goubert

OUI au partage
NON au « Copillage »
Merci de citer la source
 

Il y a 443 semaines à 10:47 | Edité par Quartzkyte 442 semaines
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
RE: Appliquer toutes les règles
 
Alors c'est là que ca plante.

Set dossier = _
objNameSpace.Folders("Dossiers personnels").Folders("Boîte de réception")


J'imagine que c'est une question de nom de dossiers : "Dossiers personnels"
Chez moi ca s'appelle "Boite aux lettres - Prénom NOM"
J'ai essayer de remplacer "Dossiers personnels" par "Boite aux lettres - Prénom NOM", ca n'a pas fonctionné non plus.

Une idée ?
 

Il y a 442 semaines à 11:11
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
RE: Appliquer toutes les règles
 
Frown
 

Il y a 442 semaines à 12:03
Avatar du membre

Administrateur

Messages : 788
Inscription : 04/12/08
Localisation: Isère
Âge : 41 ans
Fabrice N
Administrateur
RE: Appliquer toutes les règles
 
Salut !

Pour éviter de me casser la tête à chaque fois qu'il faut initialiser un dossier, que ce soit un dossier par défaut ou un autre, j'ai fait ça :

Télécharger la source  GeSHi: Visual Basic
  1. Public Function RecupDossier(Chemin_Dossier As String) As MAPIFolder
  2. ' Permet d'initialiser un objet folder sur le dossier dont le chemin est passé en paramètre
  3. ' Le chemin du dossier doit être de cette forme
  4. ' "Dossiers personnels\Dossier\Sous-dossier"
  5.  
  6. Dim OL_App As Outlook.Application
  7. Dim OL_NS As Outlook.NameSpace
  8. Dim colFolders As Outlook.Folders
  9. Dim objFolder As Outlook.MAPIFolder
  10. Dim ListeDos() As String
  11. Dim i As Long
  12. On Error Resume Next
  13.  
  14. ListeDos() = Split(Chemin_Dossier, "\")
  15.  
  16. Set OL_App = CreateObject("Outlook.Application")
  17. Set OL_NS = OL_App.GetNamespace("MAPI")
  18. Set objFolder = OL_NS.Folders.Item(ListeDos(0))
  19.  
  20. If Not objFolder Is Nothing Then
  21.  
  22. For i = 1 To UBound(ListeDos)
  23.  
  24. Set colFolders = objFolder.Folders
  25. Set objFolder = Nothing
  26. Set objFolder = colFolders.Item(ListeDos(i))
  27. If objFolder Is Nothing Then
  28. Exit For
  29. End If
  30.  
  31. Next
  32.  
  33. End If
  34.  
  35. Set RecupDossier = objFolder
  36. Set colFolders = Nothing
  37. Set OL_NS = Nothing
  38. Set OL_App = Nothing
  39.  
  40. End Function
Analysé en 0.010 secondes, avec GeSHi 1.0.7.20


Il suffit de coller cette fonction dans un de tes modules.

Ensuite, dans ton code, il te suffit de mettre :
Télécharger la source  GeSHi: Visual Basic
  1. Dim dossier as Outlook.MAPIFolder
  2. set dossier = RecupDossier("Boite aux lettres - Prénom NOM\Boîte de réception")
Analysé en 0.001 secondes, avec GeSHi 1.0.7.20


ça devrait suffire...

A+
 

Il y a 442 semaines à 12:26
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
RE: Appliquer toutes les règles
 
Bonjour

Je te remercie, mais je pense qu'il va y avoir un Os.
J'écris ce script pour le diffuser à tous les membres de mon entreprise.
Donc "set dossier = RecupDossier("Boite aux lettres - Prénom "Wink " ca va pas le faire je pense :/
 

Il y a 442 semaines à 12:34
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
RE: Appliquer toutes les règles
 
Avec la bonne syntaxe dans "Boîte aux lettres - prénom NOM", ca marche :)
Dernier soucis pour moi : Ce script n'es pas que pour moi, il doit pouvoir s'adapter à tous mes users.
Et on a pas tous le même nom ;)
Une idée pour que ce soit générique ?


Geo écrit :
Bonjour

J'ai ça dans ma boite à trésors, mais aps revérifié :
Télécharger la source  Code
Sub AppliRègles()
Dim objOutlook As Outlook.Application
'Dim ObjNameSpace As NameSpace
Dim Banque As Store
Dim LesBanques As Stores
Dim Règle As Rule
Dim LesRègles As Rules
Dim NbRègles As Integer
Dim NbRèglesEx As Integer
Dim dossier As Folder
Dim objNameSpace As NameSpace

Set objOutlook = Outlook.Application
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set dossier = _
  objNameSpace.Folders("Dossiers personnels").Folders("Boîte de réception")
NbRèglesEx = 0
Debug.Print objOutlook.Session.Stores.count
Set LesBanques = objOutlook.Session.Stores
For Each Banque In LesBanques
On Error GoTo Suite
  NbRègles = Banque.GetRules.count
  On Error GoTo 0
  Set LesRègles = Banque.GetRules
  For Each Règle In LesRègles
    If Règle.Enabled Then
      Règle.Execute showprogress:=True, Folder:=dossier
      NbRèglesEx = NbRèglesEx + 1
    End If
  Next Règle
GoTo Boucle
Suite:
  Debug.Print "La banque " & Banque.DisplayName & " ne supporte pas les règles"
  Resume Boucle
Boucle:
Next Banque
MsgBox NbRèglesEx & " appliqué(e)s "
End Sub



 

Il y a 442 semaines à 13:31
Avatar du membre

Administrateur

Messages : 788
Inscription : 04/12/08
Localisation: Isère
Âge : 41 ans
Fabrice N
Administrateur
RE: Appliquer toutes les règles
 
Re,

Une idée pour que ce soit générique ?

Là c'est sûr, il faut voir ça différemment.

Si tu ne cherches qu'à initialiser la Boîte de réception, tu peux essayer avec ça :

Télécharger la source  GeSHi: Visual Basic
  1. Dim OL_App As New Outlook.Application
  2. Dim OL_NS As Outlook.NameSpace
  3. Dim dossier As Outlook.Folder
  4.  
  5. Set OL_NS = OL_App.GetNamespace("MAPI")
  6. Set dossier = OL_NS.GetDefaultFolder(olFolderInbox)
Analysé en 0.004 secondes, avec GeSHi 1.0.7.20


Avec ça, tu vas atteindre la boîte de réception du compte qui utilise le script, quelque soit le compte.
Donc ça fonctionnera pour tout le monde.
On parle de la boîte de réception qui est défini pour la remise du courrier.

Pour atteindre d'autres dossiers, il faudra peut-être jeter un oeil dans l'aide de la fonction GetDefaultFolder pour en savoir plus...

Sinon, l'autre idée serait de voir si il n'y a pas une propriété ou méthode quelque part pour récupérer le nom de l'utilisateur pour pouvoir adapter le chemin du dossier.
Mais j'avoue ne pas savoir où la trouver...

A+
 

Il y a 442 semaines à 09:55
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
RE: Appliquer toutes les règles
 
C'est bien ce que je cherche à faire.
Je vais essayer de ce pas.

Smile
 

Il y a 442 semaines à 10:39
Membre

Messages : 69
Inscription : 18/08/10
SI
Membre
RE: Appliquer toutes les règles
 
Cela semble fonctionner aux petits oignons Smile
 

Aller vers le forum :
Forum powered by fusionBoard
Partager ce sujet
Ajouter aux favoris : 
URL :
BBcode :
HTML :
Cliquez ci dessus sur le lien que vous voulez copier et [Ctrl] + [C] ou cliquez sur le bouton [ C ]
Sujets similaires
Sujet Forum Réponses Dernier Post
Classer les contacts via mots-clé plutôt que par catégories Outlook 2007 (fermé) 7 06/07/11 10:40
Supprimer ou désactiver les raccourcis clavier Outlook 2002/2003 (fermé) 0 21/06/11 13:26
Task récurrente tout les jours Outlook 2007 (fermé) 1 21/06/11 09:56
fusionner les contacts outlook, linkedin et viadeo en une seule fiche contact Outlook 2010 (fermé) 1 16/06/11 18:42
Champ "DE" pour les transferts Outlook 2010 (fermé) 3 15/06/11 11:14

aucun Crack, CrackZ, no-CD, DownloadZ, TelechargementZ, Serial, Numéro de série, N0 de série, Serialz ni Keygen pour Outlook sur ce site.

[/\] Copyright JièL / Jean-Louis Goubert © 2003-2009 [/\]