Bonsoir le Monde,
Ecel et Outlook 2003 sous XP
J'essaie de mettre une macro sur un classeur Excel pour qu'il s'envoie
automatiquement
En fouinant ici j'ai trouvé ça, qui a l'air de marcher:
Sub EnvoiClassMail()
Dim Wbk As Workbook
Set Wbk = ActiveWorkbook
Wbk.SendMail "duchmoll@wanadoo.fr", "Essai mail par macro Excel", False
Wbk.Close savechanges:=False 'ou True
Set Wbk = Nothing
End Sub
Mais avant l'envoi il s'affiche un truc du genre :
"a program is trying to automatically send e-mail on your behalf...." (sur
certaines bécanes c'est en français) et il faut cliquer oui pour que ça parte.
Comment faire pour éviter cela, mais sans se servir de ClickYes ? (l'envoi
par macro dont je parle concerne plusieurs utilisateurs boulot trés timides
en informatique, et je ne peux pas leur faire charger à tous ClikYes)
J'ai essayé un SendKeys "Y" placé aprés la ligne SendMail mais ça n'a pas
marché, normal puisque le programme attend le message et la réponse pour
faire ce SendKey!
Ou alors il faut une manip des registres ? Est ce que fait ClikYes?
Bref : comment faire pour que tout se passe avec un seul déclenchement de ma
macro EnvoiClassMail sans autre message?
Merci sincèrement de votre aide
Mabouille
PS : je passe la même question dans le NG Outlook, parce que je ne sais pas
si c'est une question Outlook ou Excel, je ne veux vexer personne.
Outlook Redemption http://www.dimastr.com/redemption/
Dans Outlook 2007, le problème a été réglé : http://msdn2.microsoft.com/en-us/library/ms778202.aspx
A +
mabouille
Salut Carim, et merci, Bien noté les liens, mais dois je conclure qu'il n'y a aucune chance de faire ça en direct de la macro elle-même avec un bout de code ? A te lire Mabouille
Bonjour,
Comme le dit Ron, tout dépend de ta version d'Outlook ...
Outlook Redemption http://www.dimastr.com/redemption/
Dans Outlook 2007, le problème a été réglé : http://msdn2.microsoft.com/en-us/library/ms778202.aspx
A +
Salut Carim, et merci,
Bien noté les liens, mais dois je conclure qu'il n'y a aucune chance de
faire ça en direct de la macro elle-même avec un bout de code ?
A te lire
Mabouille
Bonjour,
Comme le dit Ron, tout dépend de ta version d'Outlook ...
Salut Carim, et merci, Bien noté les liens, mais dois je conclure qu'il n'y a aucune chance de faire ça en direct de la macro elle-même avec un bout de code ? A te lire Mabouille
Bonjour,
Comme le dit Ron, tout dépend de ta version d'Outlook ...
A mettre dans le classeur qui sera envoyé, cela ouvre l'email dans Outlook, l'utilisateur n'a plus qu'à appuyer sur ENVOYER De plus tu peux mettre un texte explicite qui va rassurer tes collègues et les guider sur ce qu'il faut ou ne faut pas faire...
Donne moi ton avis (attention aux coupures de lignes ....)
Sub TestMabouille()
Dim AdresseEmail As String Dim Sujet As String, Corps As String Dim FichierJoint As String
Set ol = CreateObject("outlook.application") Set myItem = ol.CreateItem(olMailItem)
AdresseEmail = "" Sujet = "Le sujet bla bla bla" Corps = "Bonjour," & vbCrLf & vbCrLf & _ "Veuillez trouver ci-joint, bla bla bla" & vbCrLf & vbCrLf & _ "Cordialement,"
FichierJoint = Thisworkbook.fullname
myItem.To = AdresseEmail myItem.Subject = Sujet myItem.Body = Corps On Error GoTo GestErr Set Myattachments = myItem.Attachments Myattachments.Add FichierJoint myItem.Display ' c'est ICI la méthode Display
Set ol = Nothing Set myItem = Nothing Exit Sub
GestErr: MsgBox "Erreur !! Merci de contacter Mabouille.........Fin de l'instruction" & "erreur numéro = " & Err.Number
End Sub
PS: il faut que le fichier soit enregistré au moins 1 fois .....
Pat REDNEF Since 1946....
Bjr Mabouille
Essaye une autre méthode avec DISPLAY,
A mettre dans le classeur qui sera envoyé, cela ouvre l'email dans
Outlook, l'utilisateur n'a plus qu'à appuyer sur ENVOYER
De plus tu peux mettre un texte explicite qui va rassurer tes
collègues et les guider sur ce qu'il faut ou ne faut pas faire...
Donne moi ton avis (attention aux coupures de lignes ....)
Sub TestMabouille()
Dim AdresseEmail As String
Dim Sujet As String, Corps As String
Dim FichierJoint As String
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
AdresseEmail = "duchmole@wanadoo.fr"
Sujet = "Le sujet bla bla bla"
Corps = "Bonjour," & vbCrLf & vbCrLf & _
"Veuillez trouver ci-joint, bla bla bla" & vbCrLf & vbCrLf &
_
"Cordialement,"
FichierJoint = Thisworkbook.fullname
myItem.To = AdresseEmail
myItem.Subject = Sujet
myItem.Body = Corps
On Error GoTo GestErr
Set Myattachments = myItem.Attachments
Myattachments.Add FichierJoint
myItem.Display ' c'est ICI la méthode Display
Set ol = Nothing
Set myItem = Nothing
Exit Sub
GestErr:
MsgBox "Erreur !! Merci de contacter Mabouille.........Fin de
l'instruction" & "erreur numéro = " & Err.Number
End Sub
PS: il faut que le fichier soit enregistré au moins 1 fois .....
A mettre dans le classeur qui sera envoyé, cela ouvre l'email dans Outlook, l'utilisateur n'a plus qu'à appuyer sur ENVOYER De plus tu peux mettre un texte explicite qui va rassurer tes collègues et les guider sur ce qu'il faut ou ne faut pas faire...
Donne moi ton avis (attention aux coupures de lignes ....)
Sub TestMabouille()
Dim AdresseEmail As String Dim Sujet As String, Corps As String Dim FichierJoint As String
Set ol = CreateObject("outlook.application") Set myItem = ol.CreateItem(olMailItem)
AdresseEmail = "" Sujet = "Le sujet bla bla bla" Corps = "Bonjour," & vbCrLf & vbCrLf & _ "Veuillez trouver ci-joint, bla bla bla" & vbCrLf & vbCrLf & _ "Cordialement,"
FichierJoint = Thisworkbook.fullname
myItem.To = AdresseEmail myItem.Subject = Sujet myItem.Body = Corps On Error GoTo GestErr Set Myattachments = myItem.Attachments Myattachments.Add FichierJoint myItem.Display ' c'est ICI la méthode Display
Set ol = Nothing Set myItem = Nothing Exit Sub
GestErr: MsgBox "Erreur !! Merci de contacter Mabouille.........Fin de l'instruction" & "erreur numéro = " & Err.Number
End Sub
PS: il faut que le fichier soit enregistré au moins 1 fois .....
Pat REDNEF Since 1946....
mabouille
Salut, Pourquoi "%S" ? Je m'attendais à "Y" pour répondre Oui (ou à "o" d'ailleurs ) Mabouille
Salut,
Il parait qu'avec les instructions suivantes ... c'est possible ... perso quand je l'ai testé je n'y suis pas arrivé ...
car il faut bouiclerMerci Patrick, J'ai bien noté l'idée, je ne peux pas l'essayer tout de suite car il faut boucler d'autres dossiers au boulot, mais je le ferai et je tiens aussitôt tout le monde au courant. Mabouille
Bjr Mabouille
Essaye une autre méthode avec DISPLAY,
A mettre dans le classeur qui sera envoyé, cela ouvre l'email dans Outlook, l'utilisateur n'a plus qu'à appuyer sur ENVOYER De plus tu peux mettre un texte explicite qui va rassurer tes collègues et les guider sur ce qu'il faut ou ne faut pas faire...
Donne moi ton avis (attention aux coupures de lignes ....)
Sub TestMabouille()
Dim AdresseEmail As String Dim Sujet As String, Corps As String Dim FichierJoint As String
Set ol = CreateObject("outlook.application") Set myItem = ol.CreateItem(olMailItem)
AdresseEmail = "" Sujet = "Le sujet bla bla bla" Corps = "Bonjour," & vbCrLf & vbCrLf & _ "Veuillez trouver ci-joint, bla bla bla" & vbCrLf & vbCrLf & _ "Cordialement,"
FichierJoint = Thisworkbook.fullname
myItem.To = AdresseEmail myItem.Subject = Sujet myItem.Body = Corps On Error GoTo GestErr Set Myattachments = myItem.Attachments Myattachments.Add FichierJoint myItem.Display ' c'est ICI la méthode Display
Set ol = Nothing Set myItem = Nothing Exit Sub
GestErr: MsgBox "Erreur !! Merci de contacter Mabouille.........Fin de l'instruction" & "erreur numéro = " & Err.Number
End Sub
PS: il faut que le fichier soit enregistré au moins 1 fois .....
Pat REDNEF Since 1946....
car il faut bouiclerMerci Patrick,
J'ai bien noté l'idée, je ne peux pas l'essayer tout de suite car il faut
boucler d'autres dossiers au boulot, mais je le ferai et je tiens aussitôt
tout le monde au courant.
Mabouille
Bjr Mabouille
Essaye une autre méthode avec DISPLAY,
A mettre dans le classeur qui sera envoyé, cela ouvre l'email dans
Outlook, l'utilisateur n'a plus qu'à appuyer sur ENVOYER
De plus tu peux mettre un texte explicite qui va rassurer tes
collègues et les guider sur ce qu'il faut ou ne faut pas faire...
Donne moi ton avis (attention aux coupures de lignes ....)
Sub TestMabouille()
Dim AdresseEmail As String
Dim Sujet As String, Corps As String
Dim FichierJoint As String
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
AdresseEmail = "duchmole@wanadoo.fr"
Sujet = "Le sujet bla bla bla"
Corps = "Bonjour," & vbCrLf & vbCrLf & _
"Veuillez trouver ci-joint, bla bla bla" & vbCrLf & vbCrLf &
_
"Cordialement,"
FichierJoint = Thisworkbook.fullname
myItem.To = AdresseEmail
myItem.Subject = Sujet
myItem.Body = Corps
On Error GoTo GestErr
Set Myattachments = myItem.Attachments
Myattachments.Add FichierJoint
myItem.Display ' c'est ICI la méthode Display
Set ol = Nothing
Set myItem = Nothing
Exit Sub
GestErr:
MsgBox "Erreur !! Merci de contacter Mabouille.........Fin de
l'instruction" & "erreur numéro = " & Err.Number
End Sub
PS: il faut que le fichier soit enregistré au moins 1 fois .....
car il faut bouiclerMerci Patrick, J'ai bien noté l'idée, je ne peux pas l'essayer tout de suite car il faut boucler d'autres dossiers au boulot, mais je le ferai et je tiens aussitôt tout le monde au courant. Mabouille
Bjr Mabouille
Essaye une autre méthode avec DISPLAY,
A mettre dans le classeur qui sera envoyé, cela ouvre l'email dans Outlook, l'utilisateur n'a plus qu'à appuyer sur ENVOYER De plus tu peux mettre un texte explicite qui va rassurer tes collègues et les guider sur ce qu'il faut ou ne faut pas faire...
Donne moi ton avis (attention aux coupures de lignes ....)
Sub TestMabouille()
Dim AdresseEmail As String Dim Sujet As String, Corps As String Dim FichierJoint As String
Set ol = CreateObject("outlook.application") Set myItem = ol.CreateItem(olMailItem)
AdresseEmail = "" Sujet = "Le sujet bla bla bla" Corps = "Bonjour," & vbCrLf & vbCrLf & _ "Veuillez trouver ci-joint, bla bla bla" & vbCrLf & vbCrLf & _ "Cordialement,"
FichierJoint = Thisworkbook.fullname
myItem.To = AdresseEmail myItem.Subject = Sujet myItem.Body = Corps On Error GoTo GestErr Set Myattachments = myItem.Attachments Myattachments.Add FichierJoint myItem.Display ' c'est ICI la méthode Display
Set ol = Nothing Set myItem = Nothing Exit Sub
GestErr: MsgBox "Erreur !! Merci de contacter Mabouille.........Fin de l'instruction" & "erreur numéro = " & Err.Number
End Sub
PS: il faut que le fichier soit enregistré au moins 1 fois .....
Pat REDNEF Since 1946....
Carim
Bonjour,
J'ai allègrement sauté une étape ... car la suggestion concerne une modification de code avec la méthode .Display celle dans laquelle tu travailles avec l'Object Outlook depuis Excel ...
Application.SendKeys "%S"
Pour l'instruction SendKeys, % signifie la touche Alt % permet donc d'appeler le menu Outlook S permet d'éxecuter Send (Envoyer)
A +
Bonjour,
J'ai allègrement sauté une étape ...
car la suggestion concerne une modification de code avec la
méthode .Display
celle dans laquelle tu travailles avec l'Object Outlook depuis
Excel ...
Application.SendKeys "%S"
Pour l'instruction SendKeys, % signifie la touche Alt
% permet donc d'appeler le menu Outlook
S permet d'éxecuter Send (Envoyer)
J'ai allègrement sauté une étape ... car la suggestion concerne une modification de code avec la méthode .Display celle dans laquelle tu travailles avec l'Object Outlook depuis Excel ...
Application.SendKeys "%S"
Pour l'instruction SendKeys, % signifie la touche Alt % permet donc d'appeler le menu Outlook S permet d'éxecuter Send (Envoyer)