R15900 [VBA] Relever des boites pop sequentiellement (FREE)
Publié par Oliv le Vendredi 29 juin 2007 13:37

Outlook relève les différent comptes POP de façon simultanée or certains FAI limitent le nombre de connexions simultanée.

Pour contourner cela une macro pour le faire séquentiellement.



Vous allez utiliser le gestionnaire de taches et un fichier .vbs en lieu et place de la reception automatique de OUTLOOK donc à désactiver (ctrl+alt+S)

On suppose ici que nous avons 2 comptes à relever mais vous pouvez en ajouter.

Donc dans un ti fichier que vous appellerez "EnvoyerRecevoir.vbs"
coller ceci :

et remplacer les comptes par les votres
Vous devez absolument écrire le compte tel qu'il figure dans le menu déroulant "Envoyer/Recevoir" avec en tête son n° d'ordre.

'##############DEBUT ###############
'By Oliv 3 AVRIL 2007
'Lance une opération "Envoyer recevoir" sur OUTLOOK
Dim theApp
Set theApp = WScript.CreateObject("Outlook.Application")
Dim oCtl
Dim oPop
Dim oCB
'STOP
'Use the Send/Receive on All Accounts action in the Tools
'menu to send the items from the Outbox, and receive new items
Set oCB = theApp.ActiveExplorer.CommandBars("Menu Bar")

'ici le premier compte à vérifier

Set oPop = oCB.Controls("Outils")
Set oPop = oPop.Controls("Envoyer/Recevoir")
'indiquer exactement le texte du menu
'attention à bien saisir votre compte
Set oPop = oPop.Controls("&4 « pop.easynet.fr » uniquement")
Set oCtl = oPop.Controls("Boîte de réception")
oCtl.Execute

'ici le second compte à vérifier
Set oPop = oCB.Controls("Outils")
Set oPop = oPop.Controls("Envoyer/Recevoir")
Set oPop = oPop.Controls("&5 « pop.freesurf.fr » uniquement")
Set oCtl = oPop.Controls("Boîte de réception")
oCtl.Execute

'Envoyer recevoir global décommenter pour l'utiliser
'  Set oPop = oCB.Controls("Outils")
'  Set oPop = oPop.Controls("Envoyer/Recevoir")
'  Set oCtl = oPop.Controls("Envoyer/Recevoir Tout")
'  oCtl.Execute

msgbox "Envoyé /recevoir terminé"
Set oCtl = Nothing
Set oPop = Nothing
Set oCB = Nothing
'##############FIN##############################"


enregistrez ce fichier où bon vous semble et ajouter son execution toutes les x minutes avec le gestionnaire des taches windows.


Adaptation de Geo pour Outlook 2010

 

D'accord, voici un script qui marche pour Outlook 2010, il recherche lui-même les paramètres à fournir à la fonction.

Le nom des adresses traitées est indiqué dnas un msgbox que vous pourrez supprimer.

Inconvénient potentiel, il traite toutes les adresses, on ne peut pas en sauter :

'##############DEBUT ###############
'By Oliv 3 AVRIL 2007 Adapté par Geo en mars 2011
'Lance une opération "Envoyer recevoir" sur OUTLOOK
Dim theApp
Set theApp = WScript.CreateObject("Outlook.Application")
Dim oCtl 
Dim oPop1 
Dim oPop2   
Dim oCB 
Dim i 
Dim pos 
'Use the Send/Receive on All Accounts action in the Tools
'menu to send the items from the Outbox, and receive new items
Set oCB = theApp.ActiveExplorer.CommandBars("Menu Bar")

Set oPop1 = oCB.Controls("Outils")
Set oPop1 = oPop1.Controls("Envoyer/Recevoir")
For i = 1 To oPop1.Controls.count
pos = InStr(1, oPop1.Controls(i).Caption, "uniquement")
If pos > 0 Then
Set oPop2 = oPop1.Controls(i)
Set oCtl = oPop2.Controls("Boîte de réception")
oCtl.Execute
msgbox " Compte : " &  oPop1.Controls(i).Caption
End If
Next 'i

MsgBox "Envoyé /recevoir terminé"
Set oCtl = Nothing
Set oPop1 = Nothing
Set oPop2 = Nothing
Set oCB = Nothing
'##############FIN##############################"