Bonjour le Forum,
(mes excuses pour cette absence, débordé)
Je crée un objet Outlook dans lequel je veux insérer une image de quelques cellules de mon classeur.
Pour ce faire,
Exportation des cellules en ".png"
Utiliser le presse-papier pour coller l'image ainsi créée dans mon mail
Sur Excel 2010, j'arrivais à simuler CTRL+V par la méthodeSur Excel 2016, échec : la ligne de code est inactive
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendKeys
Manuellement, si j'effectue CTRL+V, le presse-papier est bien actif et la copie sur le mail se réalise très bien.
Y aurait-il un élément de changé sur Excel 2016?
PS : la méthode HTMLBODY fonctionne mais je cherche à savoir.
Création Outlook
Exportation des cellules en image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Option Explicit Sub Envoi_Documents() 'Utilise la liaison anticipée 'Requiert une référence à la bibliothèque d'objets Outlook Dim Applic_Outlook As Outlook.Application Dim MonItem As Outlook.MailItem With Worksheets("Mail") .Visible = True .Select End With Application.ScreenUpdating = True 'Crée l'objet Outlook Set Applic_Outlook = New Outlook.Application Set MonItem = Applic_Outlook.CreateItem(olMailItem) With MonItem .To = "marcel@citron.fr" .Subject = "Coucou" .Display 'copie du corps de texte dans le corps de message Call Exporte_img AppActivate "Coucou - Message", 0 ' Active Outlook SendKeys "^V", True ' coller .Send End With Application.CutCopyMode = False Set MonItem = Nothing Set Applic_Outlook = Nothing End Sub
Par avance, merci pour vos retours
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
42
43
44
45
46
47
48
49 Sub Exporte_img() Dim cells_img As Range Dim export_img As Variant Dim S As Shape export_img = "lechemin\image.png" With Worksheets("Mail") .Visible = True .Select On Error Resume Next For Each S In .Shapes S.Delete Next S On Error GoTo 0 Set cells_img = .Range("corps_3") Application.Goto reference:="R1C105" ' Création d'une zone de graphique (de type histogramme, mais vide de toute façon...) et sélection de celle-ci .Shapes.AddChart2(201, xlColumnClustered).Select ' Redimentionnement à la taille de la zone de cellules .Shapes(1).Height = cells_img.Rows.Height * 2 .Shapes(1).Width = cells_img.Columns.Width * 2 .Shapes(1).ScaleWidth 0.5, msoFalse .Shapes(1).ScaleHeight 0.5, msoFalse ' Copier la zone de cellules sous forme d'image cells_img.CopyPicture xlScreen, xlPicture ' Collage dans la zone de graphique ActiveChart.Paste ' Export sous forme d'image ActiveChart.Export FileName:=export_img, FilterName:="PNG" ' Retour à la normale .Shapes(1).Delete End With End Sub
Partager