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 Sub

Ami 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 Sub

Bonjour à 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.

Rechercher des sujets similaires à "enregistrer fichier apercu impression"