Mail par Excel 2010 : la méthode Chart.Paste a échoué
Bonjour le Forum,
Je souhaite copier une plage de cellule dans mon corps de texte mail, via une image temporaire.
Cette méthode était effective sur Excel 2003. Elle est en échec sur Excel 2010.
La méthode utilisée
- emploi de Outlook.application
- création image temporaire
- collage dans le corps de texte par SendKeys
Soit
Déclaration variable (image temporaire) à portée module
Code:
Const Img_temp As String = "lerépertoire.imagetemp.jpg"
Envoi image
= Procédure Principale
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Sub Envoi_Documents()
Dim Applic_Outlook As Outlook.Application
Dim MonItem As Outlook.MailItem
Dim Document As Range
Dim Objet_Mail As String
Dim Adresse_Mail As String
Dim Fichier_joint As String
'Crée l'objet Outlook
Set Applic_Outlook = New Outlook.Application
'Créer l'élément de mail et le transmettre
Set MonItem = Applic_Outlook.CreateItem(olMailItem)
With MonItem
.To = l_dest
.Subject = Objet_Mail
.cc = "tralala@citron.fr"
.Categories = "Daily"
Fichier_joint = "\\lechemin.monfichier.pdf"
.Attachments.Add Fichier_joint
Application.wait (Now + TimeValue("0:00:01"))
.Display
End With
'copie du corps de texte dans le corps de message
Call Plage_Mail
Application.wait (Now + TimeValue("00:00:05"))
AppActivate Objet_Mail & " - Message", 0 ' Active Outlook
Application.wait (Now + TimeValue("00:00:05"))
SendKeys "^v", True ' coller
Application.wait (Now + TimeValue("00:00:05"))
SendKeys "%v", True ' Envoi du message
Application.CutCopyMode = False
Set Applic_Outlook = Nothing
ActiveWindow.DisplayGridlines = True
End Sub |
Procédure annexe appelée dans la procédure principale
Code:
1 2 3
| Sub Plage_Mail()
Call Image_Temporaire
End Sub |
Procédure annexe créant l'image temporaire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Sub Image_Temporaire(Optional dummy As Byte)
Dim cellule_corp As Range
Dim image_chart As ChartObject
On Error Resume Next
For Each image In ActiveSheet.Charts
image.Delete
Next
On Error GoTo 0
Set cellule_corp = Range("corps_3")
With cellule_corp
.Columns.AutoFit
.CopyPicture xlScreen, xlBitmap
Set image_chart = ActiveSheet.ChartObjects.Add( _
.Left, .Top, .Width, .Height)
End With
With image_chart.Chart
.Paste
.Export FileName:=Img_temp
End With
image_chart.Delete
Set image_chart = Nothing
Set cellule_corp = Nothing
End Sub |
Comme mentionné plus haut, le code est effectif sur Excel 2003.
Sur Excel 2010, pour cette dernière procédure, erreur sur la ligne de code
Citation:
Erreur 1004
La méthode -Paste de l'Objet _Chart a échoué
Pourquoi?
J'ai cherché une explication, sans succès.
Par avance, merci.