[VBA Excel 2013] Export zone en image sans cadre

Bonjour a tous,

J'ai une feuille qui permet de mettre en page une série de résultats obtenu par des calculs sur d'autre feuille du même fichier excel.

Afin de faciliter l'exploitation de ces résultats et faciliter de leur usage, j'ai mis en place un bouton d'export qui permet d'obtenir une image des ces résultats mis en page.

Le code est le suivant :

Sub export_to_picture_EU()

Dim FichierImage As String

'Copie la cellule en tant qu'image
        Sheets("Nutrition Facts EU").Range("Nutrition_information").Select
        Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture

'creer un graphique temporaire
        With ActiveSheet.ChartObjects.Add(Left:=Range("Nutrition_information").Left, Top:=Range("Nutrition_information").Top, _
        Width:=Range("Nutrition_information").Width, Height:=Range("Nutrition_information").Height)
        .Name = "ExportImage"
        .Activate
        End With

'Copier l'image dans le graphique, ouvrir le dialog de "Sauvegarder sous", sauvegarde le fichier et supprime le graphique temporaire
        ActiveChart.Paste
        FichierImage = Application.GetSaveAsFilename(InitialFileName:="NutInfoEU.png", FileFilter:="Image file (*.png), *.png")
        ActiveSheet.ChartObjects("ExportImage").Chart.export FichierImage
        ActiveSheet.ChartObjects("ExportImage").Delete

End Sub

En soit, ça fonctionne bien, j'ai juste un detail que je n'arrive pas a regler. L'image ainsi obtenue a un "cadre". Sauriez vous me dire comment adapter ce code afin d'eviter ce cadre?

Je vous remercie par avance

Bastien

Bonjour,

Après un petit essai sur une forme classique, l'enregistreur m'a dit :

sheets("nomdelafeuille").shapes("nomdelimage").Line.Visible = msoFalse

Cdlt,

Hello

Merci pour ta réponse

Par contre, désolé, mais pourrais tu m'aider sur l'adaptation de mon code avec ta proposition car je ne vois pas comment faire?

Voici un apperçu de ma feuille

image

Voici l'image obtenue

nutinfoeu

Je te remercie par avance

Bastien

Bonjour,

Je placerais la ligne ici :

Sub export_to_picture_EU()

Dim FichierImage As String

'Copie la cellule en tant qu'image
        with Sheets("Nutrition Facts EU")
            .Range("Nutrition_information").Select
            Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture

'creer un graphique temporaire
            .ChartObjects.Add(Left:=Range("Nutrition_information").Left, Top:=Range("Nutrition_information").Top, _
            Width:=Range("Nutrition_information").Width, Height:=Range("Nutrition_information").Height)
            .Name = "ExportImage"
            .Activate
            .shapes("ExportImage").line.visible = msofalse '<<<<<<<<<<<<<<<
        End With

'Copier l'image dans le graphique, ouvrir le dialog de "Sauvegarder sous", sauvegarde le fichier et supprime le graphique temporaire
        ActiveChart.Paste
        FichierImage = Application.GetSaveAsFilename(InitialFileName:="NutInfoEU.png", FileFilter:="Image file (*.png), *.png")
        ActiveSheet.ChartObjects("ExportImage").Chart.export FichierImage
        ActiveSheet.ChartObjects("ExportImage").Delete

End Sub

Je n'ai aucune certitude car je n'ai pas essayé...

Cdlt,

Re

Je viens de tester mais ça me met un erreur de compilation en selectionnant "msoFalse"

image

Basé sur tes commentaire, j'ai creuser (surement du coup avec les bon mot clé maintenant) et j'ai trouvé

J'ai ajouté .Border.LineStyle = xlNone et ça semble fonctionner (mais ce n'(est peut etre aps très "propre" comme méthode).

du coup ça donne ça

Sub export_to_picture_EU()

Dim FichierImage As String

'Copie la cellule en tant qu'image
With Sheets("Nutrition Facts EU")
    .Range("Nutrition_information").Select
    Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture
End With

'creer un graphique temporaire
With ActiveSheet.ChartObjects.Add(Left:=Range("Nutrition_information").Left, Top:=Range("Nutrition_information").Top, _
    Width:=Range("Nutrition_information").Width, Height:=Range("Nutrition_information").Height)
    .Name = "ExportImage"
    .Activate
    .Border.LineStyle = xlNone
End With

'Copier l'image dans le graphique, ouvrir le dialog de "Sauvegarder sous", sauvegarde le fichier et supprime le graphique temporaire
        ActiveChart.Paste
        FichierImage = Application.GetSaveAsFilename(InitialFileName:="NutInfoEU.png", FileFilter:="Image file (*.png), *.png")
        ActiveSheet.ChartObjects("ExportImage").Chart.export FichierImage
        ActiveSheet.ChartObjects("ExportImage").Delete

End Sub

Merci pour ton aide

Si c'est très bien et tu as résolu ton problème !

A plus,

Rechercher des sujets similaires à "vba 2013 export zone image cadre"