OVH Cloud OVH Cloud

Envoi de la feuille active par courriel

12 réponses
Avatar
Caroline L.
Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en cliquant
sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline

10 réponses

1 2
Avatar
michdenis
Bonsoir Caroline,

Tu devrais trouver ton bonheur à cette adresse :
http://www.rondebruin.nl/sendmail.htm


Salutations!


"Caroline L." a écrit dans le message de news:
Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en cliquant
sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline
Avatar
Daniel.j
Bonjour,
Une page spéciale ici:
http://dj.joss.free.fr/web.htm

Sub EnvoiFeuilMail()
Dim Wbk As Workbook

ThisWorkbook.Sheets("Feuil1").Copy
Set Wbk = ActiveWorkbook
SendKeys "{E}"
Wbk.SendMail "", "Feuille du contrat à signer", True
'true pour un avis de reception

Wbk.Close savechanges:úlse
Set Wbk = Nothing
End Sub

Daniel
===================== FAQ MPFE
http://dj.joss.free.fr/faq.htm
===================== "Caroline L." a écrit dans le message de news:

Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en cliquant
sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline




Avatar
Daniel.j
Ou bien avec Xl 2003

Sub MailFeuilleOE()
Dim Dest, Sujt, Msg As String
Dim RepName
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:="C:temptest.xls"
RepName = "C:temptest.xls"
Dest = ""
Sujt = "Test d'envoi d'une feuille avec Excel"
Msg = "Bonjour, Excel vous envoie une feuille avec OE"
Shell "C:Program FilesOutlook Expressmsimn.exe " & _
"/mailurl:mailto:" & Dest & "?subject=" & Sujt & "&Body=" & Msg & ""
SendKeys "%I" & "p" & RepName & "~" & "%s"
ActiveWorkbook.Close
End Sub

Daniel

"Caroline L." a écrit dans le message de news:

Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en cliquant
sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline




Avatar
Modeste
Bonsour®
Caroline L. wrote:
je cherche à créer la macro suivante :
envoyer la feuille active en pièce jointe par Outlook Express et toujours
au même destinataire
(donc l'adresse électronique s'inscrirait toute seule)
et tout ça se ferait automatiquement en cliquant sur un bouton (macro).



La bible dans ce domaine ;o)))
toutes les solutions là :
http://www.rondebruin.nl/sendmail.htm


--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Caroline L.
Bonjour michdenis,

merci pour le lien fourni, j'y suis allé.
J'ai essayé 2 solutions mais rien ne se passe, c'est-à-dire que je ne recois
pas le courriel désiré (car pour mes tests je place mon adresse courriel).
Aussi, dans le code qui suit (au bas) que veut dire MailItem de la ligne
suivante
Dim OutMail As Outlook.MailItem


Code que j'ai essayé mais je ne reçois pas le courriel :
---------------------------------------------------------------
Sub Mail_ActiveSheet_HTML_File()
'You must add a reference to the Microsoft outlook Library
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim wb As Workbook
Dim strdate As String

strdate = Format(Now, "dd-mm-yy h-mm-ss")
Application.ScreenUpdating = False

ActiveSheet.Copy
Set wb = ActiveWorkbook

On Error Resume Next
wb.Sheets(1).DrawingObjects.Visible = True
wb.Sheets(1).DrawingObjects.Delete
On Error GoTo 0

With wb
.SaveAs "Part of " & ThisWorkbook.Name _
& " " & strdate & ".htm", FileFormat:=xlHtml

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add wb.FullName
'You can add other files also like this
'.Attachments.Add ("C:test.txt")
.Send 'or use .Display
End With

.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With

Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
________________________________

Merci
Caroline


"michdenis" a écrit dans le message de news:

Bonsoir Caroline,

Tu devrais trouver ton bonheur à cette adresse :
http://www.rondebruin.nl/sendmail.htm


Salutations!


"Caroline L." a écrit dans le message de news:


Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en cliquant
sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline





Avatar
Caroline L.
Merci Modeste
Bonne journée

Caroline

"Modeste" a écrit dans le message de news:
#
Bonsour®
Caroline L. wrote:
je cherche à créer la macro suivante :
envoyer la feuille active en pièce jointe par Outlook Express et
toujours


au même destinataire
(donc l'adresse électronique s'inscrirait toute seule)
et tout ça se ferait automatiquement en cliquant sur un bouton (macro).



La bible dans ce domaine ;o)))
toutes les solutions là :
http://www.rondebruin.nl/sendmail.htm


--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr





Avatar
michdenis
Bonjour Caroline,

Voici 2 méthodes :

Ceci fonctionne très bien ... tu n'as qu'à insérer
l'adresse internet dans la procédure et ne pas
oublier d'insérer la référence demandée.

Avec cette procédure, tu es obligé de cliquer sur "oui"
pour envoyer le courriel - sécurité Microsoft oblige.

'---------------------------------
Sub Mail_ActiveSheet_HTML_File()
'You must add a reference to the Microsoft outlook Library
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim wb As Workbook
Dim strdate As String

strdate = Format(Now, "dd-mm-yy h-mm-ss")
Application.ScreenUpdating = False

ActiveSheet.Copy
Set wb = ActiveWorkbook

With wb
.SaveAs "Part of " & ThisWorkbook.Name _
& " " & strdate & ".htm", FileFormat:=xlHtml

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add wb.FullName
'You can add other files also like this
'.Attachments.Add ("C:test.txt")
.Send 'or use .Display
End With

.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With

Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
'---------------------------------


Une autre méthode plus expédititve :
Tu dois renseigner le serveur SMTP de ta configuration

Pour ce faire, tu ouvres Outlook express,
barre des menus / outils / Compte /
Selectionne onglet Courrier - sélection le compte désiré
un clic sur propriété / onglet serveur / Smtp est défini dans
une des cases....

Ce code n'est pas valide avec Windows 98

'-------------------------------------
Sub CDO_Send_Workbook()
Dim iMsg As Object
Dim iConf As Object
Dim wb As Workbook
Dim WBname As String
' Dim Flds As Variant

Application.ScreenUpdating = False
Set wb = ActiveWorkbook

' It will save a copy of the file in C:/ with a Date and Time stamp
WBname = wb.Name & " " & Format(Now, "dd-mm-yy h-mm-ss") & ".xls"
wb.SaveCopyAs "C:/" & WBname


Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "Serveur SMTP"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With

With iMsg
Set .Configuration = iConf
.To = ""
.CC = ""
.BCC = ""
.From = ""
.Subject = "This is a test"
.TextBody = "This is the body text"
.AddAttachment "C:/" & WBname
.Send
End With

'If you not want to delete the file you send delete this line
Kill "C:/" & WBname

Set iMsg = Nothing
Set iConf = Nothing
Set wb = Nothing
Application.ScreenUpdating = True
End Sub
'-------------------------------------


Salutations!




"Caroline L." a écrit dans le message de news: %23vh$
Bonjour michdenis,

merci pour le lien fourni, j'y suis allé.
J'ai essayé 2 solutions mais rien ne se passe, c'est-à-dire que je ne recois
pas le courriel désiré (car pour mes tests je place mon adresse courriel).
Aussi, dans le code qui suit (au bas) que veut dire MailItem de la ligne
suivante
Dim OutMail As Outlook.MailItem


Code que j'ai essayé mais je ne reçois pas le courriel :
---------------------------------------------------------------
Sub Mail_ActiveSheet_HTML_File()
'You must add a reference to the Microsoft outlook Library
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim wb As Workbook
Dim strdate As String

strdate = Format(Now, "dd-mm-yy h-mm-ss")
Application.ScreenUpdating = False

ActiveSheet.Copy
Set wb = ActiveWorkbook

On Error Resume Next
wb.Sheets(1).DrawingObjects.Visible = True
wb.Sheets(1).DrawingObjects.Delete
On Error GoTo 0

With wb
.SaveAs "Part of " & ThisWorkbook.Name _
& " " & strdate & ".htm", FileFormat:=xlHtml

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add wb.FullName
'You can add other files also like this
'.Attachments.Add ("C:test.txt")
.Send 'or use .Display
End With

.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With

Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
________________________________

Merci
Caroline


"michdenis" a écrit dans le message de news:

Bonsoir Caroline,

Tu devrais trouver ton bonheur à cette adresse :
http://www.rondebruin.nl/sendmail.htm


Salutations!


"Caroline L." a écrit dans le message de news:


Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en cliquant
sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline





Avatar
Caroline L.
Bonjour Daniel,

merci pour ta réponse ! J'ai fait le test. Peux-tu me dire pourquoi dans le
destinaire (À:) il y a toujours les 4 premières lettres de mon nom ?

Merci
Caroline


"Daniel.j" a écrit dans le message de news:
#
Bonjour,
Une page spéciale ici:
http://dj.joss.free.fr/web.htm

Sub EnvoiFeuilMail()
Dim Wbk As Workbook

ThisWorkbook.Sheets("Feuil1").Copy
Set Wbk = ActiveWorkbook
SendKeys "{E}"
Wbk.SendMail "", "Feuille du contrat à signer", True
'true pour un avis de reception

Wbk.Close savechanges:úlse
Set Wbk = Nothing
End Sub

Daniel
===================== > FAQ MPFE
http://dj.joss.free.fr/faq.htm
===================== > "Caroline L." a écrit dans le message de news:

Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en
cliquant


sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline








Avatar
Caroline L.
Re-Bonjour michdenis,

j'ai fait le test de ta première méthode et j'ignore ce que je fais de pas
correcte mais je ne reçois pas le courriel. Pourtant j'ai ajouté la
référence de Microsoft Outlook dans les outils VBA et j'ai changé dans le
code mon adresse courriel. Est-ce parce que je suis sur Win 98 2e Ed. ? (tu
disais que la 2e méthode ne fonctionne pas sur Win 98 mais la 1ère ?).

Merci
Caroline


"michdenis" a écrit dans le message de news:

Bonjour Caroline,

Voici 2 méthodes :

Ceci fonctionne très bien ... tu n'as qu'à insérer
l'adresse internet dans la procédure et ne pas
oublier d'insérer la référence demandée.

Avec cette procédure, tu es obligé de cliquer sur "oui"
pour envoyer le courriel - sécurité Microsoft oblige.

'---------------------------------
Sub Mail_ActiveSheet_HTML_File()
'You must add a reference to the Microsoft outlook Library
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim wb As Workbook
Dim strdate As String

strdate = Format(Now, "dd-mm-yy h-mm-ss")
Application.ScreenUpdating = False

ActiveSheet.Copy
Set wb = ActiveWorkbook

With wb
.SaveAs "Part of " & ThisWorkbook.Name _
& " " & strdate & ".htm", FileFormat:=xlHtml

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add wb.FullName
'You can add other files also like this
'.Attachments.Add ("C:test.txt")
.Send 'or use .Display
End With

.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With

Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
'---------------------------------


Une autre méthode plus expédititve :
Tu dois renseigner le serveur SMTP de ta configuration

Pour ce faire, tu ouvres Outlook express,
barre des menus / outils / Compte /
Selectionne onglet Courrier - sélection le compte désiré
un clic sur propriété / onglet serveur / Smtp est défini dans
une des cases....

Ce code n'est pas valide avec Windows 98

'-------------------------------------
Sub CDO_Send_Workbook()
Dim iMsg As Object
Dim iConf As Object
Dim wb As Workbook
Dim WBname As String
' Dim Flds As Variant

Application.ScreenUpdating = False
Set wb = ActiveWorkbook

' It will save a copy of the file in C:/ with a Date and Time stamp
WBname = wb.Name & " " & Format(Now, "dd-mm-yy h-mm-ss") & ".xls"
wb.SaveCopyAs "C:/" & WBname


Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2


.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") "Serveur SMTP"


.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

.Update
End With

With iMsg
Set .Configuration = iConf
.To = ""
.CC = ""
.BCC = ""
.From = ""
.Subject = "This is a test"
.TextBody = "This is the body text"
.AddAttachment "C:/" & WBname
.Send
End With

'If you not want to delete the file you send delete this line
Kill "C:/" & WBname

Set iMsg = Nothing
Set iConf = Nothing
Set wb = Nothing
Application.ScreenUpdating = True
End Sub
'-------------------------------------


Salutations!




"Caroline L." a écrit dans le message de news:
%23vh$

Bonjour michdenis,

merci pour le lien fourni, j'y suis allé.
J'ai essayé 2 solutions mais rien ne se passe, c'est-à-dire que je ne
recois

pas le courriel désiré (car pour mes tests je place mon adresse courriel).
Aussi, dans le code qui suit (au bas) que veut dire MailItem de la ligne
suivante
Dim OutMail As Outlook.MailItem


Code que j'ai essayé mais je ne reçois pas le courriel :
---------------------------------------------------------------
Sub Mail_ActiveSheet_HTML_File()
'You must add a reference to the Microsoft outlook Library
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim wb As Workbook
Dim strdate As String

strdate = Format(Now, "dd-mm-yy h-mm-ss")
Application.ScreenUpdating = False

ActiveSheet.Copy
Set wb = ActiveWorkbook

On Error Resume Next
wb.Sheets(1).DrawingObjects.Visible = True
wb.Sheets(1).DrawingObjects.Delete
On Error GoTo 0

With wb
.SaveAs "Part of " & ThisWorkbook.Name _
& " " & strdate & ".htm", FileFormat:=xlHtml

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Attachments.Add wb.FullName
'You can add other files also like this
'.Attachments.Add ("C:test.txt")
.Send 'or use .Display
End With

.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With

Application.ScreenUpdating = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
________________________________

Merci
Caroline


"michdenis" a écrit dans le message de news:

Bonsoir Caroline,

Tu devrais trouver ton bonheur à cette adresse :
http://www.rondebruin.nl/sendmail.htm


Salutations!


"Caroline L." a écrit dans le message de news:


Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par Outlook
Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en
cliquant


sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline










Avatar
Caroline L.
Re-bonjour Daniel,

aussi, l'avis de réception ne fonctionne pas... as-tu une petite idée ?

P.S. Je suis sur Win 98 2e édition.

Merci
Caroline

"Caroline L." a écrit dans le message de news:
#
Bonjour Daniel,

merci pour ta réponse ! J'ai fait le test. Peux-tu me dire pourquoi dans
le

destinaire (À:) il y a toujours les 4 premières lettres de mon nom ?

Merci
Caroline


"Daniel.j" a écrit dans le message de news:
#
Bonjour,
Une page spéciale ici:
http://dj.joss.free.fr/web.htm

Sub EnvoiFeuilMail()
Dim Wbk As Workbook

ThisWorkbook.Sheets("Feuil1").Copy
Set Wbk = ActiveWorkbook
SendKeys "{E}"
Wbk.SendMail "", "Feuille du contrat à signer", True
'true pour un avis de reception

Wbk.Close savechanges:úlse
Set Wbk = Nothing
End Sub

Daniel
===================== > > FAQ MPFE
http://dj.joss.free.fr/faq.htm
===================== > > "Caroline L." a écrit dans le message de news:

Bonjour,

je cherche à créer la macro suivante :
dans un classeur, envoyer la feuille active en pièce jointe par
Outlook



Express et toujours au même destinataire (donc l'adresse électronique
s'inscrirait toute seule) et tout ça se ferait automatiquement en
cliquant


sur un bouton (macro). Est-ce possible ?

Merci à l'avance

Caroline












1 2