ENVOYE DE MESSAGE AVEC PIÈCES JOINTES DEPUIS EXCEL
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 2006
-
24 juil. 2004 à 16:04
IhebCha
Messages postés1Date d'inscriptionmardi 11 juillet 2006StatutMembreDernière intervention 7 août 2009
-
7 août 2009 à 17:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
IhebCha
Messages postés1Date d'inscriptionmardi 11 juillet 2006StatutMembreDernière intervention 7 août 2009 7 août 2009 à 17:27
On peut détourner le problème de sécurité Outlook sans recourir à "ClickYes".
Au fait Le message de sécurité n'intervient que lorsque vous tentez d'envoyer des messages par un autre programme que Outlook.
Si vous exécutez votre code sous Outlook. Vous n'aurez pas besoin de ClickYes. Car Outlook n'affiche pas un problème de sécurité quand c'est lui même qui envoit.
L'astuce est de mentir à Outlook en lui faisant croir que le message est envoyé à travers lui même.
Je reprend la dernière partie de votre code :
Set mailobj = CreateObject("Outlook.Application")
Set Mail = mailobj.CreateItem(olMailItem)
With Mail
'Mettre ici le ou les destinataires
.To = "nom1; nom2; ..."
'Sujet du message
.Subject = "Mail automatique"
'Corps de texte du message(contenu)
.Body = "test"
.Attachments.Add ("C:\test.txt")
.display
'Au lieu d'utiliser la méthode send on utlise la méthode save
.Save
'StrID est une varriable type String
StrID = .EntryID
End With
'On appel la procédure d'outlook
Call mailobj.send_myMail(strID)
Set Mail = Nothing
Set mailobj = Nothing
end sub
Avant d'éxécuter ce code depuis Excel.
Allez sur Outlook dans le module ThisOutlookSession
inserez le code suivant:
Sub send_myMail(StrID As String)
Dim myMail
Set myMail = Application.GetNamespace("MAPI").GetItemFromID(StrID)
myMail.Send
End Sub
Enregistrez le
Retournez à Excel et lancez votre procédure. Ca marchera
neo2k2
Messages postés126Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 9 novembre 20093 21 sept. 2007 à 14:58
Au lieu de s'embêter avec ce fichier test.txt pourquoi ne pas avoir directement implémenté un GetOpenFileName?
J'ai également rajouté un InputBox pour l'adresse.
Code modifié :
' adresse du destinataire
Dim address As String
address = InputBox("Adresse du destinataire : ", "DESTINATAIRE", "")
' fichier joint
Const FTYPE_ALL As String = "Tout type de fichiers, *.*"
Dim join_file As String
join_file = Application.GetOpenFilename(FTYPE_ALL, 0, "Ajouter un fichier", "Joindre")
'
' on lance la fonction de mail
'
With Mail
.SentOnBehalfOfName = SentOnName
'Mettre ici le ou les destinataires ("nom.prenom@FAI.com; nom1.prenom1@FAI.com)
.To = address
'Sujet du message
.subject = "Mail automatique"
'Corps de texte du message(contenu)
.body = "Message envoyé par Excel."
'
' on vérifie simplement si un fichier est ajouté
'
If join_file <> "" Then
.Attachments.Add (join_file)
End If
.display
.Send
End With
starfy
Messages postés3Date d'inscriptionmercredi 24 février 2010StatutMembreDernière intervention24 février 2010 22 août 2007 à 01:53
je suis complètement débutant et je voudrais savoir comment transformer ce programme pour qu'au lieu d'envoyer le mail à l'adresse spécifiée, il l'envoie à une adresse mail se trouvant dans une cellule d'excel. Idem pour la pièce jointe.
Et comment lui faire alors envoyer un mail à chacune des adresses de mon tableau excel avec la pièce jointe propre à l'adresse (j'ai une colonne avec les adresses mail et une autre avec les pièces jointes à envoyer)
EPS32HAY
Messages postés100Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention 1 février 2009 18 nov. 2005 à 14:04
Salut GBAUDINAT
As tu penser à créer le fichier test.txt sur la racine de ton disque dur?.
Je viens de la relancer au bureau et ca fonctionne, le problème c'est que j'ai OUTLOOK 2002, je ne l'ai pas testé avec la version OUTLOOK 2003.
Bonne Prog
GBAUDINAT
Messages postés2Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention18 novembre 2005 18 nov. 2005 à 12:42
Bonjour,
j'ai utilisé votre code pour ajouter une pièce jointe à un mailing avec Outlook 2003 et Word. Impossible de lancer la macro qui s'arrête à la ligne : .Attachments.Add ("C:\test.txt") avec un message d'erreur "Erreur de compilation, membre de méthode ou de donnée introuvable".
Microsoft Outlook Object 11.0 library est bien installé dans les références.
Où est le probléme ?
Cordialement
GB
EPS32HAY
Messages postés100Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention 1 février 2009 17 nov. 2005 à 15:41
Bonjour à tous,
Voici un extrait provenant de l'éditeur de ClickYes et permettant la fermeture de l'appli.
Je ne l'ai pas testé.
Express ClickYes Command Line Parameters
If you use VBScript, JavaScript or any other scripting language that does not provide Windows API calls you can manage Express ClickYes too by means of command line switches. A lot of Visual Basic developers will find this way more convenient too.
Being launched ClickYes can be either active or suspended. When it is active it monitors the Outlook Security prompts and clicks the Yes button on behalf of a user. When it is suspended it does nothing. Double-clicking its icon in the taskbar notification area (also known as system tray) makes it active if it was suspended and vise versa.
Express ClickYes supports the following command line switches:
-stop closes Express ClickYes if it was previously launched.
-suspend suspends Express ClickYes if it was active or do nothing otherwise.
-activate activates Express ClickYes if it was suspended or do nothing otherwise.
Bonne Prog à Tous
gilbisti
Messages postés1Date d'inscriptionmardi 15 novembre 2005StatutMembreDernière intervention17 novembre 2005 17 nov. 2005 à 12:35
qui peux me filer l'astuce pour mettre une boucle a l interieur du code afin d'envoyer plusieurs mails?
GBAUDINAT
Messages postés2Date d'inscriptiondimanche 16 novembre 2003StatutMembreDernière intervention18 novembre 2005 25 sept. 2005 à 16:18
Bonjour,
j'en suis arrivé au même probléme avec word : comment fermer ClickYes de la barre tâches ?
Peut-être avez vous maintenant trouvé la solution.
Cordialement GB
cs_dhardy
Messages postés45Date d'inscriptionlundi 23 juin 2003StatutMembreDernière intervention24 février 2009 11 mars 2005 à 22:00
Je suis aussi très intéressé par une autre solution du type modification de la regedit comme pour Outlook Express.
cs_garat
Messages postés32Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention19 janvier 2011 6 nov. 2004 à 11:18
Merci EPS32HAY pout ta réponse,
Je n'ai pas programmé ClikYes pour le lancer au démarrage de WIN.
Je le lance par la commande:
Shell("C:\Program Files\Express ClickYes\ClickYes.exe")
Ma question est:
Comment fermer l'application ClikYes quand on a fini d'envoyer son ou ses email(s) ?
Merci
EPS32HAY
Messages postés100Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention 1 février 2009 5 nov. 2004 à 22:25
En fait Clickyes ce lance automatiquement au demarrage de windows, il faut donc l'inhiber. En cliquant dans le barre de tache sur l'icone du logiciel, tu peux le rendre inactif.
Moi je l'enclenche uniquement dans mon prog et je le met en stanby à la fin du code.
En expérant que cette réponse te convienne.
Bonne programmation.
cs_garat
Messages postés32Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention19 janvier 2011 2 nov. 2004 à 19:52
Super merci !
Mais comment sortir de l'application "ClickYes" à la fin de la routine ?
Je me casse les dents sur cette question depuis 4 jours.
A+
EPS32HAY
Messages postés100Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention 1 février 2009 29 oct. 2004 à 21:45
Salut Proteus91,
Le programme clickyes permet simplement d'éviter le clic sur le bouton OK du message automatique, il n'existe malheuresement pas d'autres solution malgré d'importantes recherche sur Internet.
Bonne prog
PROTEUS91
Messages postés156Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention28 décembre 2010 24 oct. 2004 à 21:23
Moi je signe plutot pour. Mais je crois que j'ai un probleme ton code est pas mal mais est ce qu'il marche avec Outlook XP j'ai bien telecharger le fichier mais j'ai toujours ce fameux message automatique qui bloque mes envoies.
Peux tu me tenir au courant ?
EPS32HAY
Messages postés100Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention 1 février 2009 24 juil. 2004 à 22:19
Je cherche encore et encore,mais pas de résultat concluant pour le moment
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 24 juil. 2004 à 16:04
J'ai pas le temp de zieuter ton code mai je regarderai a l'ocasion, si tu trouve un moyen de le faire sans dl le freewar sa m'interesse :))
7 août 2009 à 17:27
Au fait Le message de sécurité n'intervient que lorsque vous tentez d'envoyer des messages par un autre programme que Outlook.
Si vous exécutez votre code sous Outlook. Vous n'aurez pas besoin de ClickYes. Car Outlook n'affiche pas un problème de sécurité quand c'est lui même qui envoit.
L'astuce est de mentir à Outlook en lui faisant croir que le message est envoyé à travers lui même.
Je reprend la dernière partie de votre code :
Set mailobj = CreateObject("Outlook.Application")
Set Mail = mailobj.CreateItem(olMailItem)
With Mail
'Mettre ici le ou les destinataires
.To = "nom1; nom2; ..."
'Sujet du message
.Subject = "Mail automatique"
'Corps de texte du message(contenu)
.Body = "test"
.Attachments.Add ("C:\test.txt")
.display
'Au lieu d'utiliser la méthode send on utlise la méthode save
.Save
'StrID est une varriable type String
StrID = .EntryID
End With
'On appel la procédure d'outlook
Call mailobj.send_myMail(strID)
Set Mail = Nothing
Set mailobj = Nothing
end sub
Avant d'éxécuter ce code depuis Excel.
Allez sur Outlook dans le module ThisOutlookSession
inserez le code suivant:
Sub send_myMail(StrID As String)
Dim myMail
Set myMail = Application.GetNamespace("MAPI").GetItemFromID(StrID)
myMail.Send
End Sub
Enregistrez le
Retournez à Excel et lancez votre procédure. Ca marchera
21 sept. 2007 à 14:58
J'ai également rajouté un InputBox pour l'adresse.
Code modifié :
' adresse du destinataire
Dim address As String
address = InputBox("Adresse du destinataire : ", "DESTINATAIRE", "")
' fichier joint
Const FTYPE_ALL As String = "Tout type de fichiers, *.*"
Dim join_file As String
join_file = Application.GetOpenFilename(FTYPE_ALL, 0, "Ajouter un fichier", "Joindre")
'
' on lance la fonction de mail
'
With Mail
.SentOnBehalfOfName = SentOnName
'Mettre ici le ou les destinataires ("nom.prenom@FAI.com; nom1.prenom1@FAI.com)
.To = address
'Sujet du message
.subject = "Mail automatique"
'Corps de texte du message(contenu)
.body = "Message envoyé par Excel."
'
' on vérifie simplement si un fichier est ajouté
'
If join_file <> "" Then
.Attachments.Add (join_file)
End If
.display
.Send
End With
22 août 2007 à 01:53
Et comment lui faire alors envoyer un mail à chacune des adresses de mon tableau excel avec la pièce jointe propre à l'adresse (j'ai une colonne avec les adresses mail et une autre avec les pièces jointes à envoyer)
18 nov. 2005 à 14:04
As tu penser à créer le fichier test.txt sur la racine de ton disque dur?.
Je viens de la relancer au bureau et ca fonctionne, le problème c'est que j'ai OUTLOOK 2002, je ne l'ai pas testé avec la version OUTLOOK 2003.
Bonne Prog
18 nov. 2005 à 12:42
j'ai utilisé votre code pour ajouter une pièce jointe à un mailing avec Outlook 2003 et Word. Impossible de lancer la macro qui s'arrête à la ligne : .Attachments.Add ("C:\test.txt") avec un message d'erreur "Erreur de compilation, membre de méthode ou de donnée introuvable".
Microsoft Outlook Object 11.0 library est bien installé dans les références.
Où est le probléme ?
Cordialement
GB
17 nov. 2005 à 15:41
Voici un extrait provenant de l'éditeur de ClickYes et permettant la fermeture de l'appli.
Je ne l'ai pas testé.
Express ClickYes Command Line Parameters
If you use VBScript, JavaScript or any other scripting language that does not provide Windows API calls you can manage Express ClickYes too by means of command line switches. A lot of Visual Basic developers will find this way more convenient too.
Being launched ClickYes can be either active or suspended. When it is active it monitors the Outlook Security prompts and clicks the Yes button on behalf of a user. When it is suspended it does nothing. Double-clicking its icon in the taskbar notification area (also known as system tray) makes it active if it was suspended and vise versa.
Express ClickYes supports the following command line switches:
-stop closes Express ClickYes if it was previously launched.
-suspend suspends Express ClickYes if it was active or do nothing otherwise.
-activate activates Express ClickYes if it was suspended or do nothing otherwise.
Bonne Prog à Tous
17 nov. 2005 à 12:35
25 sept. 2005 à 16:18
j'en suis arrivé au même probléme avec word : comment fermer ClickYes de la barre tâches ?
Peut-être avez vous maintenant trouvé la solution.
Cordialement GB
11 mars 2005 à 22:00
6 nov. 2004 à 11:18
Je n'ai pas programmé ClikYes pour le lancer au démarrage de WIN.
Je le lance par la commande:
Shell("C:\Program Files\Express ClickYes\ClickYes.exe")
Ma question est:
Comment fermer l'application ClikYes quand on a fini d'envoyer son ou ses email(s) ?
Merci
5 nov. 2004 à 22:25
Moi je l'enclenche uniquement dans mon prog et je le met en stanby à la fin du code.
En expérant que cette réponse te convienne.
Bonne programmation.
2 nov. 2004 à 19:52
Mais comment sortir de l'application "ClickYes" à la fin de la routine ?
Je me casse les dents sur cette question depuis 4 jours.
A+
29 oct. 2004 à 21:45
Le programme clickyes permet simplement d'éviter le clic sur le bouton OK du message automatique, il n'existe malheuresement pas d'autres solution malgré d'importantes recherche sur Internet.
Bonne prog
24 oct. 2004 à 21:23
Peux tu me tenir au courant ?
24 juil. 2004 à 22:19
24 juil. 2004 à 16:04