Macro de transfert dans Outlook 2000 - VB/VBA/VBS - Programmation
Marsh Posté le 16-02-2006 à 13:33:19
Il n'existe aucune fonctionnalité dans Outlook qui peut faire de la redirection d'emails ?
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.
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
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 ?
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 !!!
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...
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.
Marsh Posté le 17-02-2006 à 19:16:16
Bonjour,
Il suffit de remplacer
oOlFwd.Send
par
oOlFwd.Display
wape
Marsh Posté le 18-02-2006 à 17:48:28
Super, c'est exactement ce qu'il me fallait ! Merci beaucoup !
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 ?
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
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 !
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
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
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 ?