Macro de transfert dans Outlook 2000

Macro de transfert dans Outlook 2000 - VB/VBA/VBS - Programmation

Marsh Posté le 15-02-2006 à 22:47:51    

Bonjour,
Je voudrais créer une macro dans Outlook, qui me permettrait en cliquant sur un bouton de la barre d'outil, de transférer des messages sélectionnés à une personne définie (par exemple x@y.com).
Le code que j'ai créé en VisualBasic est :
" Set myForward = mySelectedItems.Forward
myForward.Recipients.Add "x@y.com"  "
Mais ça ne marche pas car l'objet n'est pas trouvé.
Quelqu'un calé en programmation pourrait-il m'aider ?   :pfff:  :sarcastic:

Reply

Marsh Posté le 15-02-2006 à 22:47:51   

Reply

Marsh Posté le 16-02-2006 à 10:33:01    

up

Reply

Marsh Posté le 16-02-2006 à 13:33:19    

Il n'existe aucune fonctionnalité dans Outlook qui peut faire de la redirection d'emails ?

Reply

Marsh Posté le 16-02-2006 à 21:10:15    

Je suppose que ça existe, mais que la redirection est automatique pour tous les messages d'une même catégorie ; dans mon cas, je reçois des e-mails professionnels, dont je veux transférer certains, et certains seulement, à mon assistante.
Aucun automatisme ne peut faire le choix à ma place, c'est pourquoi je voudrais faire cette macro.

Reply

Marsh Posté le 17-02-2006 à 07:37:02    

Bonjour.
 
Essaye qqch du genre :
 
Dim oOlExp As Explorer
Dim oOlSel As Selection
Dim oOlItm As MailItem
Dim oOlFwd As MailItem
 
Set oOlExp = ActiveExplorer
Set oOlSel = oOlExp.Selection
 
For Each oOlItm In oOlSel
   Set oOlFwd = oOlItm.Forward
   oOlFwd.Recipients.Add "x@y.com"
   oOlFwd.Send
Next oOlItm
 
Set oOlFwd = Nothing
Set oOlItm = Nothing
Set oOlSel = Nothing
Set oOlExp = Nothing
 
 
wape

Reply

Marsh Posté le 17-02-2006 à 10:59:30    

Bonjour,
Merci beaucoup pour ce programme.
 
Voici ce que qui est écrit exactement :
Sub NOM DE LA MACRO()
Dim oOlExp As Explorer
Dim oOlSel As Selection
Dim oOlItm As MailItem
Dim oOlFwd As MailItem
 
Set oOlExp = ActiveExplorer
Set oOlSel = oOlExp.Selection
 
For Each oOlItm In oOlSel
   Set oOlFwd = oOlItm.Forward
   oOlFwd.Recipients.Add "x@y.com"
   oOlFwd.Send
Next oOlItm
 
Set oOlFwd = Nothing
Set oOlItm = Nothing
Set oOlSel = Nothing
Set oOlExp = Nothing
 
 
wape
End Sub
 
Lors de l'exécution, j'ai un message d'erreur :
Erreur de compilation : sub ou fonction non définie, qui porterait apparemment sur "NOM DE LA MACRO()"
 
"WAPE" à la fin semble aussi poser un problème...
 
Quelle est la solution à ces problèmes ?

Reply

Marsh Posté le 17-02-2006 à 11:20:55    

Bonjour,
 
En ce qui concerne le nom de la macro, il ne doit pas comporter d'espace.
Quant au terme "wape", il s'agissait de mon pseudo, en guise de signature.
 
Voici donc l'exemple au complet (le code proprement dit figure en bleu) :
 
Sub Transfert()
 
Dim oOlExp As Explorer
Dim oOlSel As Selection
Dim oOlItm As MailItem
Dim oOlFwd As MailItem
   
Set oOlExp = ActiveExplorer
Set oOlSel = oOlExp.Selection
   
For Each oOlItm In oOlSel
   Set oOlFwd = oOlItm.Forward
   oOlFwd.Recipients.Add "x@y.com"
   oOlFwd.Send
Next oOlItm
   
Set oOlFwd = Nothing
Set oOlItm = Nothing
Set oOlSel = Nothing
Set oOlExp = Nothing
 
End Sub

 
 
wape <-- ceci est mon pseudo !!!

Reply

Marsh Posté le 17-02-2006 à 14:38:44    

:)  :)  :) Génial, ça marche !!!  :)  :)  :)  
 
Désolé pour le pseudo, j'aurais pu voir que c'était ta signature... :D  
 
Avec ce code, les messages sont directement envoyés dans la boîte de réception ; que faut-il supprimer dans le code pour que le message de transfert reste ouvert (pour pouvoir y ajouter un commentaire par exemple) ?
J'ai essayé d'enlever oOlFwd.Send mais ça ne semble pas marcher. :??:  

Reply

Marsh Posté le 17-02-2006 à 19:16:16    

Bonjour,
 
Il suffit de remplacer
 
   oOlFwd.Send
 
par
 
   oOlFwd.Display
 
 
wape

Reply

Marsh Posté le 18-02-2006 à 17:48:28    

Super, c'est exactement ce qu'il me fallait ! Merci beaucoup ! :lol:  
 
Encore une petite question, tant qu'on y est : si je veux transférer le message à plusieurs personnes à la fois, je supposais qu'il fallait remplacer "x@y.com" par "a@y.com; b@y.com; c@y.com", mais à l'éxécution les noms ne sont pas reconnus... Quelle est l'astuce ?  :??:

Reply

Marsh Posté le 18-02-2006 à 17:48:28   

Reply

Marsh Posté le 20-02-2006 à 08:36:02    

Bonjour,
 
Essaye cette possibilité :
 
   For Each oOlItm In oOlSel
      Set oOlFwd = oOlItm.Forward
      oOlFwd.Recipients.Add "a@y.com"
      oOlFwd.Recipients.Add "b@y.com"
      oOlFwd.Recipients.Add "c@y.com"
      oOlFwd.Display
   Next oOlItm
 
ou celle-ci :
 
   For Each oOlItm In oOlSel
      Set oOlFwd = oOlItm.Forward
      oOlFwd.To = "a@y.com; b@y.com; c@y.com"
      oOlFwd.Display
   Next oOlItm
 
 
wape

Reply

Marsh Posté le 20-02-2006 à 11:16:49    

Bonjour,
Les 2 possibilités marchent parfaitement ; tout est donc OK, merci beaucoup pour ton aide et ta patience ! :hello:

Reply

Marsh Posté le 09-01-2008 à 14:54:04    

excuser le déterrage de topic
 
mais c'est juste pour remercier l'auteur de cette macro car la macro m'a rendu un grand service

Reply

Marsh Posté le 09-04-2008 à 16:00:48    

Bonjour  
Comment enregistrer ça et faire tourner ça automatique.
Moi mon problème est que je veux transférer tous les mails qui entrent dans ma boîte à une adresse spécifique qui peut changer tout le temps.
Il n y a pas une adresse standard de redirection, c'est en fonction de l'objet que je transfère le mail à une personne spécifique.
 
Donc en conclusion, chaque fois que je reçois un mail dans ma boîte, si son objet est: "Lettre Mr. ADAMA" ce mail doit être redirigé ver l'adresse e_mail de Mr ADAMA qui est dans mon carnet d'adresse.
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed