Enregistrer dans un fichier l'aperçu avant impression
Je cherche le code Excel VBA pour enregistrer dans un fichier l'aperçu avant impression. Merci.
Bonsoir,
si vous l'imprimez en pdf, ça ne convient pas ?
Merci de votre réponse. Non le PDF ne convient malheureusement pas. J'ai besoin d'enregistrer l'aperçu dans un fichier comme une image afin que je puisse l'intégrer dans un texte d'un document Word.
Mon code suivant bloque à la ligne Set chartObj = ChartObjects.Add(Left:=0, Top:=0, Width:=0, Height:=0) pour une raison que j'ignore.
Merci à tous.
Sub EnregistrerApercu()
Dim ws As Worksheet
Dim Plage As Range
Dim ImagePath As String
' Définir la feuille et la plage à capturer
Sheets("projet").Select
Set ws = ThisWorkbook.Sheets("Projet") ' Projet est le nom de ma feuille
Set Plage = ws.Range("b5:i42") ' Plage à imprimer
' Copie de la plage en tant qu'image
Plage.CopyPicture Appearance:=xlScreen, Format:=xlPicture
' Créer un objet Chart temporaire pour enregistrer l'image
Dim chartObj As ChartObject
Set chartObj = ChartObjects.Add(Left:=0, Top:=0, Width:=0, Height:=0)
chartObj.Chart.Paste
' Définir le chemin et le nom du fichier
ImagePath = "C:\Users\Denis\JAA\Aubert\Apercu.png" ' Remplacez par le chemin souhaité
' Exporter l'image
chartObj.Chart.Export Filename:=ImagePath, FilterName:="PNG"
' Supprimer l'objet Chart temporaire
chartObj.Delete
MsgBox "L'aperçu a été enregistré avec succès dans : " & ImagePath
End Sub
Hello,
pourquoi passer par un fichier alors que tu peux directement insérer l'image de la plage dans un document WORD.
Voici un exemple qui copie une plage Excel en tant qu'Image et qui la colle dans un nouveau document word :
Sub CopyRangeAsImageToWord()
Dim ws As Worksheet
Dim rng As Range
Dim WordApp As Object
Dim WordDoc As Object
' Définir la feuille et la plage à copier
Set ws = ThisWorkbook.Sheets("Feuil1") ' Change to your sheet name
Set rng = ws.Range("A1:C18") ' Change to your desired range
' Copier la plage comme Image
rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture
' Créer une nouvelle instance de WORD
On Error Resume Next
Set WordApp = GetObject(Class:="Word.Application")
If WordApp Is Nothing Then
Set WordApp = CreateObject(Class:="Word.Application")
End If
On Error GoTo 0
WordApp.Visible = True
' Créer un nouveau document WORD
Set WordDoc = WordApp.Documents.Add
' Coller l'image dans le nouveau document WORD
WordDoc.Content.Paste
' Optionnel : Ajouter un message
MsgBox "Plage copiée et collée comme image dans WORD", vbInformation
End SubAmi calmant, J.P
bonjour Denis Amiot, salut Jurassic Pork,
autrement : Set chartObj = ws.ChartObjects.Add(Left:=0, Top:=0, Width:=100, Height:=100)
Bonjour tout le monde,
Si vous avez une raison pour passer par une charte temporaire. Proposition :
Sub EnregistrerApercu()
Dim co As ChartObject
Dim ws As Worksheet
Dim Plage As Range
Dim ImagePath As String
' On copie en mémoire la plage à capturer
Set ws = ThisWorkbook.Sheets("Projet") ' Projet est le nom de ma feuille
ws.Activate
' On supprime les éventuel objets charte
If ws.ChartObjects.Count > 0 Then ws.ChartObjects.Delete
Set Plage = Range("b5:i42") ' Plage à imprimer
Plage.Select
Plage.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set co = ws.ChartObjects.Add(40, 40, 500, 600)
co.Activate
'On copie la copie d'écran dans l'objet charte
ws.ChartObjects(1).Chart.Paste
' Définir le chemin et le nom du fichier
ImagePath = "C:\Users\Denis\JAA\Aubert\Apercu.png" ' Remplacez par le chemin souhaité
' Exporter l'image
co.Chart.Export Filename:=ImagePath, FilterName:="PNG"
' Supprimer l'objet Chart temporaire
co.Delete
ActiveSheet.Range("A1").Select
MsgBox "L'aperçu a été enregistré avec succès dans : " & ImagePath
End SubBonjour à tous. Un gros merci pour vos efforts afin de régler mon problème. Pourquoi je souhaite enregistrer l'aperçu avant impression? En fait, j'ai un rapport d'environ 200 lignes avec des titres dans les 5 premières lignes. Je dois obtenir des aperçus par bloc. Ainsi, si je sélectionne les lignes 35 à 55 pour imprimer, l'aperçu va me montrer mes 20 lignes ainsi que les 5 premières lignes de titres. Idem, pour le bloc 85 à 100 lignes. J'ai besoin de mes lignes de titres à chaque bloc d'impression. Je veux enregistrer ces blocs en format Image afin que je puisse les copier (insertion Image) dans différentes pages de mon document WORD.
Automatiquement, avec VBA Excel.