Copier un tableau dans outlook en format image
Résolu
fabkiller78
Messages postés
11
Statut
Membre
-
fabkiller78 Messages postés 11 Statut Membre -
fabkiller78 Messages postés 11 Statut Membre -
Bonjour,
Après plusieurs recherches et essais je me résigne à demander votre aide.
J'ai créé une macro qui met à jour un tableau de ventes journalière que je copie ensuite en image dans le corps d'un mail qui comprend également du texte.
J'aimerais inclure dans la macro de création d'email, l'image d'un tableau excel dans le corps du mail.
Voici mon code qui fonctionne parfaitement mais dont je voudrais inclure dans le corps du mail une image d'un tableau excel mais pour l'instant en vain
Comme vous pouvez le voir dans le code je crée l'email avec toutes les infos pour un envoi automatique sauf le tableau excel que je suis obligé de coller manuellement en image.
L'image du tableau à inclure se trouve dans l'onglet "Daily sales", range ("B2:X53")
Le fichier est forcément ouvert et l'onglet "Daily sales" est déjà activée
Si quelqu'un a une solution je suis preneur
Merci
Après plusieurs recherches et essais je me résigne à demander votre aide.
J'ai créé une macro qui met à jour un tableau de ventes journalière que je copie ensuite en image dans le corps d'un mail qui comprend également du texte.
J'aimerais inclure dans la macro de création d'email, l'image d'un tableau excel dans le corps du mail.
Voici mon code qui fonctionne parfaitement mais dont je voudrais inclure dans le corps du mail une image d'un tableau excel mais pour l'instant en vain
Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)
corps_mail = "Bonjour, " & vbNewLine & vbNewLine & "Veuillez trouver ci-dessous les ventes jour au " & Format(JourJ, "dd/mm/yyyy") & "." & vbNewLine & vbNewLine & vbNewLine & "Bien cordialement
On Error Resume Next
With OutMail
.To = "ventesjour"
.CC = ""
.BCC = ""
.Subject = "Ventes jour au " & Format(JourJ, "dd/mm/yyyy")
.Body = corps_mail
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Comme vous pouvez le voir dans le code je crée l'email avec toutes les infos pour un envoi automatique sauf le tableau excel que je suis obligé de coller manuellement en image.
L'image du tableau à inclure se trouve dans l'onglet "Daily sales", range ("B2:X53")
Le fichier est forcément ouvert et l'onglet "Daily sales" est déjà activée
Si quelqu'un a une solution je suis preneur
Merci
A voir également:
- Copier un tableau dans outlook en format image
- Format epub - Guide
- Tableau word - Guide
- Format factory - Télécharger - Conversion & Codecs
- Trier un tableau excel - Guide
- Tableau ascii - Guide
6 réponses
Bonjour,
Une solution partielle, ajoutez la copie en image dans le code
Puis faites un Ctrl V à l'emplacement souhaité dans le corps de l'email Outlook.
Une solution partielle, ajoutez la copie en image dans le code
Range("B2:X53").CopyPicture xlScreen, xlBitmap
Puis faites un Ctrl V à l'emplacement souhaité dans le corps de l'email Outlook.
Bonjour,
J'aimerais que tout soit en automatique.
j'ai essayé votre solution en intégrant dans corpsmail un "selection.paste" mais la macro plante sur cette ligne du coup.
Après plusieurs recherches et essais je me demande si il ne serait pas plus simple de passer par word ou powerpoint dans la macro ?
C'est à dire faire une copie image vers word et récupérer cette image de word pour l'inclure dans le corps du mail
J'aimerais que tout soit en automatique.
j'ai essayé votre solution en intégrant dans corpsmail un "selection.paste" mais la macro plante sur cette ligne du coup.
Après plusieurs recherches et essais je me demande si il ne serait pas plus simple de passer par word ou powerpoint dans la macro ?
C'est à dire faire une copie image vers word et récupérer cette image de word pour l'inclure dans le corps du mail
Dans ce cas, je pense qu'il faut faire le message au format HTML dans lequel on peut insérer une image par code.
Grand jour de bonté, après quelques essais, voici le code adapté :
Grand jour de bonté, après quelques essais, voici le code adapté :
Dim Img As String, Plage As Range, PathTmp As String
PathTmp = Environ$("temp") & ""
Img = "Image.jpg"
Set Plage = Range("B2:X53")
'Création d'un fichier image dans le répertoire temporaire
Plage.CopyPicture
With ActiveSheet.ChartObjects.Add(0, 0, Plage.Width, Plage.Height)
.Activate
.Chart.Paste
.Chart.Export PathTmp & Img, "JPG"
End With
ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete
Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.TO = "ventesjour"
'.CC = ""
'.BCC = ""
.Subject = "Ventes jour au " & Format(JourJ, "dd/mm/yyyy")
.Attachments.Add PathTmp & Img, olByValue, 0
.HTMLBody = "<span LANG=FR><p class=style2>" _
& "<font FACE=Calibri SIZE=3>Bonjour,<br><br>" _
& "Veuillez trouver ci-dessous les ventes jour au " _
& Format(JourJ, "dd/mm/yyyy") & "<br><br>" _
& "Bien cordialement<br><br>" _
& "<img src='cid:" & Img & "'</font></span>"
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Kill PathTmp & Img
Hello Normad,
Merci pour cette solution, je pense qu'on touche au but
Il me met une image vide dans le corps du mail avec inscrit :
"impossible d'afficher l'image liée. Le fichier a peut être été déplacé, renommé ou supprimé. Vérifier que la liaison pointe vers le fichier et l'emplacement correct"
j'essaye de modifié le code mais en vain pour l'instant
Merci pour cette solution, je pense qu'on touche au but
Il me met une image vide dans le corps du mail avec inscrit :
"impossible d'afficher l'image liée. Le fichier a peut être été déplacé, renommé ou supprimé. Vérifier que la liaison pointe vers le fichier et l'emplacement correct"
j'essaye de modifié le code mais en vain pour l'instant
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Chez moi celà fonctionne parfaitement.
Vous avez essayé de modifier quoi ?
Vu le message d'erreur, je commencerais par supprimer la
dernière ligne :
Si après suppression celà fonctionne, il faudra faire la suppression du fichier éventuellement déjà existant en début de procédure, soit juste après les lignes :
ajouter cette ligne :
Sinon mettez le code complet de la procédure.
Chez moi celà fonctionne parfaitement.
Vous avez essayé de modifier quoi ?
Vu le message d'erreur, je commencerais par supprimer la
dernière ligne :
Kill PathTmp & Img(Cette ligne efface l'image créé dans votre dossier temporaire).
Si après suppression celà fonctionne, il faudra faire la suppression du fichier éventuellement déjà existant en début de procédure, soit juste après les lignes :
Dim Img As String, Plage As Range, PathTmp As String
PathTmp = Environ$("temp") & ""
Img = "Image.jpg"
ajouter cette ligne :
If Dir(PathTmp & Img) <> "" Then Kill PathTmp & Img
Sinon mettez le code complet de la procédure.
Bonjour,
@Normad : Le problème est lié à un bug connu sur CCM...
Ta ligne de code : PathTmp = Environ$("temp") & "\" a été transformée à cause des balises code, par le site commentçamarche.net, en PathTmp = Environ$("temp") & ""
Cela ne peut donc pas fonctionner.
@fabkiller78 : remplace donc
par
@Normad : Le problème est lié à un bug connu sur CCM...
Ta ligne de code : PathTmp = Environ$("temp") & "\" a été transformée à cause des balises code, par le site commentçamarche.net, en PathTmp = Environ$("temp") & ""
Cela ne peut donc pas fonctionner.
@fabkiller78 : remplace donc
PathTmp = Environ$("temp") & ""
par
PathTmp = Environ$("temp") & "\"