Bonjour le forum,
Aprés un long moment sans besoin d'aide me voila obligé de me rendre à l'évidence....vous êtes indispensable -
Je vous soumets pour soucis :
Sub Envoi_mail()
Dim Ol As New Outlook.Application
Dim Olmail As MailItem
Dim CurrFile As String, sBody As String
Dim sh As Worksheet
Dim rg As Range
Set Ol = New Outlook.Application
Set Olmail = Ol.CreateItem(olMailItem)
Set sh = ActiveSheet
' zone à affecter au corps de texte
Set rg = sh.Range("a17:G60")
rg.Copy
' copie le contenu vers le presse-papiers
With New DataObject
.GetFromClipboard
' et récupère les dernières données
sBody = .GetText(1) 'récupère les données sous format texte
End With
With Olmail
.To = "toto@free.fr"
.CC = ""
.Subject = "Envoi du mail 2009"
.body = sBody
On Error Resume Next
.Send
If Err.Number > 0 Then
MsgBox "Erreur d'envoi : " + Err.Description
End If
On Error GoTo 0
End With
End Sub
Donc, l'idée de cette procédure(dont une partie m'a été inspiré par le forum) est de copier dans une feuille Excel, les données d'une plage et que ces données soient mis dans le corps de texte du mail.
Le soucis avec ce code et nottament la partie ".GetText(1)" c'est que je ne copie que le texte de la plage or, si dans cette plage il y a une image, celle-ci ne sera pas copiée.
Supposons qu'une image se trouve aux environs de la cellule C30 que manuellement, je selectionne sur ma feuille Excel la plage("a17:G60") et que je fasse un copier de cette selection et la colle sur une autre feuille, tout sera copié, aussi bien le texte que l'image, j'ai essayé avec l'enregistreur, ça fonctionne mais comme adapter le code pour qu'il s'insère dans le .body= ????
En espérant avoir été assez claire, je vous remercie pour l'aide que vous pourrez m'apporter
Aprés un long moment sans besoin d'aide me voila obligé de me rendre à l'évidence....vous êtes indispensable -
Je vous soumets pour soucis :
Sub Envoi_mail()
Dim Ol As New Outlook.Application
Dim Olmail As MailItem
Dim CurrFile As String, sBody As String
Dim sh As Worksheet
Dim rg As Range
Set Ol = New Outlook.Application
Set Olmail = Ol.CreateItem(olMailItem)
Set sh = ActiveSheet
' zone à affecter au corps de texte
Set rg = sh.Range("a17:G60")
rg.Copy
' copie le contenu vers le presse-papiers
With New DataObject
.GetFromClipboard
' et récupère les dernières données
sBody = .GetText(1) 'récupère les données sous format texte
End With
With Olmail
.To = "toto@free.fr"
.CC = ""
.Subject = "Envoi du mail 2009"
.body = sBody
On Error Resume Next
.Send
If Err.Number > 0 Then
MsgBox "Erreur d'envoi : " + Err.Description
End If
On Error GoTo 0
End With
End Sub
Donc, l'idée de cette procédure(dont une partie m'a été inspiré par le forum) est de copier dans une feuille Excel, les données d'une plage et que ces données soient mis dans le corps de texte du mail.
Le soucis avec ce code et nottament la partie ".GetText(1)" c'est que je ne copie que le texte de la plage or, si dans cette plage il y a une image, celle-ci ne sera pas copiée.
Supposons qu'une image se trouve aux environs de la cellule C30 que manuellement, je selectionne sur ma feuille Excel la plage("a17:G60") et que je fasse un copier de cette selection et la colle sur une autre feuille, tout sera copié, aussi bien le texte que l'image, j'ai essayé avec l'enregistreur, ça fonctionne mais comme adapter le code pour qu'il s'insère dans le .body= ????
En espérant avoir été assez claire, je vous remercie pour l'aide que vous pourrez m'apporter