[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 SubEn 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 = msoFalseCdlt,
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 SubJe n'ai aucune certitude car je n'ai pas essayé...
Cdlt,
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 SubMerci pour ton aide
Si c'est très bien et tu as résolu ton problème !
A plus,


