Convertir plage cellule en image pour courriel
Jen -
Bonjour,
Mon code ici copie une plage de cellule pour l'intégrer à un courriel. Tout fonctionne bien, mais j'aimerais convertir cette plage de cellule en image avec des dimensions que je pourrais ajuster. Quelqu'un peut m'aider ?
Merci à l'avance!
Sub EnvoyerEmail() Dim réponse As Integer réponse = MsgBox("Est-ce que votre application Outlook est ouvert?", vbYesNo, "Attention!") If réponse = vbNo Then MsgBox ("Vous devez ouvrir votre application pour continuer") Exit Sub End If Dim oOutlook As Object Set oOutlook = CreateObject("Outlook.Application") Dim oMail As Object Set oMail = oOutlook.CreateItem(0) With oMail Dim oObjetword As Object Set oObjetword = .GetInspector.WordEditor .To = "" .Subject = "Voici votre HORAIRE 2024-2025 : " & Range("B6").Value & " - " & Range("C6") ' .Body = "" ActiveSheet.Range("A1:O12").Copy oObjetword.Range(0).Paste .Display End With Application.CutCopyMode = False Range("D6").Select End Sub
- Convertir plage cellule en image pour courriel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Image de manchots sur une image de plage - Forum Musique / Radio / Clip
- Cci courriel - Guide
- Image iso - Guide
- Image plage pix ✓ - Forum Google Chrome
1 réponse
Bonjour,
Pour convertir une plage de cellules en image dans Excel VBA, vous pouvez utiliser la méthode ExportAsFixedFormat pour exporter la plage sélectionnée en tant que fichier image. Voici comment vous pouvez le faire dans votre code :
Sub EnvoyerEmail()
Dim réponse As Integer
réponse = MsgBox("Est-ce que votre application Outlook est ouverte?", vbYesNo, "Attention!")
If réponse = vbNo Then
MsgBox ("Vous devez ouvrir votre application pour continuer")
Exit Sub
End If
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")
Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)
With oMail
Dim oObjetword As Object
Set oObjetword = .GetInspector.WordEditor
.To = ""
.Subject = "Voici votre HORAIRE 2024-2025 : " & Range("B6").Value & " - " & Range("C6")
.Body = ""
' Exporter la plage de cellules en tant qu'image
ActiveSheet.Range("A1:O12").ExportAsFixedFormat Type:=xlTypePicture, Filename:="C:\Temp\Plage_Cellules.png", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
' Insérer l'image dans le courriel
oObjetword.InlineShapes.AddPicture "C:\Temp\Plage_Cellules.png", LinkToFile:=False, SaveWithDocument:=True
' Afficher le courriel
.Display
End With
Application.CutCopyMode = False
Range("D6").Select
End Sub
Dans ce code, la plage de cellules sélectionnée est exportée en tant qu'image au format PNG dans le répertoire C:\Temp\ avec le nom de fichier Plage_Cellules.png. Ensuite, l'image est insérée dans le corps du courriel à l'aide de la méthode InlineShapes.AddPicture. Assurez-vous de spécifier le chemin d'accès correct pour l'exportation de l'image. Une fois le courriel affiché, l'image sera visible dans le corps du courriel.
En espérant vous apporter la solution. Ca devrait fonctionner.
Merci beaucoup pour toute ces infos!
J'imagine que c'est impossible de seulement coller l'image dans le courriel sans l'enregistrer ?
Si vous souhaitez insérer l'image directement dans le corps du courriel sans enregistrer de fichier image, vous pouvez le faire en copiant la plage de cellules sous forme d'image dans le Presse-papiers, puis en collant cette image dans le corps du courriel. Voici comment vous pouvez le faire :
Sub EnvoyerEmail()
Dim réponse As Integer
réponse = MsgBox("Est-ce que votre application Outlook est ouverte?", vbYesNo, "Attention!")
If réponse = vbNo Then
MsgBox ("Vous devez ouvrir votre application pour continuer")
Exit Sub
End If
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")
Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)
With oMail
Dim oObjetword As Object
Set oObjetword = .GetInspector.WordEditor
.To = ""
.Subject = "Voici votre HORAIRE 2024-2025 : " & Range("B6").Value & " - " & Range("C6")
.Body = ""
' Copier la plage de cellules comme une image dans le Presse-papiers
ActiveSheet.Range("A1:O12").CopyPicture Appearance:=xlScreen, Format:=xlPicture
' Coller l'image dans le corps du courriel
oObjetword.Range.Paste
' Afficher le courriel
.Display
End With
Application.CutCopyMode = False
Range("D6").Select
End Sub
Voilà. Pas de souci.
Je vous remercie infiniment ! Je peux enfin clore mon projet ! Tout fonctionne à merveille. Je vais garder en note vos explications précieusement.
Bonne journée à vous!
Dernière petite question, est-ce qu'il est possible donner à l'image une dimension spécifique ? :)
C'est génial!! Je vous remercie beaucoup pour votre précieux temps ainsi que les explications. :)
Bonne fin de journée!