bernard_metz
XLDnaute Nouveau
Bonjour
J'ai ce code mais il ne fonctionne que lorsque j'interrompt la macro et que je la relance... Si j'effectue la macro d'une seule fois, EXCEL n'a pas le temps de copier le dessin du presse papier dans le graphique
La fonction Doevents n'est pas suffisante non plus
Sub EnregistrerImageFeuille()
Dim ws As Worksheet
Dim chemin As String
Dim nomFichier As String
Dim chartObj As ChartObject
' Définir la feuille de calcul que vous souhaitez enregistrer
Set ws = ThisWorkbook.Sheets("DESSIN-F") ' Remplacez par le nom de votre feuille
' Définir le chemin et le nom du fichier
chemin = ThisWorkbook.Path
nomFichier = "ESSAI.jpg"
ActiveSheet.Shapes.Range(Array("EXT", "INT", "PARC", "VIT")).Select
Selection.ShapeRange.Group.Select
Selection.Name = "ESSAI"
Set chartObj = ws.ChartObjects.Add(Left:=0, Top:=0, Width:=ws.Shapes("ESSAI").Width, Height:=ws.Shapes("ESSAI").Height)
ws.Shapes("ESSAI").CopyPicture 'Appearance:=xlScreen, Format:=xlPicture
chartObj.Chart.Paste
' mettre le croquis dans le formulaire
Dim tempFilePath As String
tempFilePath = Environ("TEMP") & "\tempChart.png"
Set chartObj = ThisWorkbook.Worksheets("DESSIN-F").ChartObjects(1)
chartObj.Chart.Export Filename:=tempFilePath, FilterName:="jpg"
Me.DF_CROQUIS_FENETRE.Picture = LoadPicture(tempFilePath)
' Supprimer les objets inutiles
chartObj.Delete
ws.Shapes("ESSAI").Delete
End Sub
J'ai ce code mais il ne fonctionne que lorsque j'interrompt la macro et que je la relance... Si j'effectue la macro d'une seule fois, EXCEL n'a pas le temps de copier le dessin du presse papier dans le graphique
La fonction Doevents n'est pas suffisante non plus
Sub EnregistrerImageFeuille()
Dim ws As Worksheet
Dim chemin As String
Dim nomFichier As String
Dim chartObj As ChartObject
' Définir la feuille de calcul que vous souhaitez enregistrer
Set ws = ThisWorkbook.Sheets("DESSIN-F") ' Remplacez par le nom de votre feuille
' Définir le chemin et le nom du fichier
chemin = ThisWorkbook.Path
nomFichier = "ESSAI.jpg"
ActiveSheet.Shapes.Range(Array("EXT", "INT", "PARC", "VIT")).Select
Selection.ShapeRange.Group.Select
Selection.Name = "ESSAI"
Set chartObj = ws.ChartObjects.Add(Left:=0, Top:=0, Width:=ws.Shapes("ESSAI").Width, Height:=ws.Shapes("ESSAI").Height)
ws.Shapes("ESSAI").CopyPicture 'Appearance:=xlScreen, Format:=xlPicture
chartObj.Chart.Paste
' mettre le croquis dans le formulaire
Dim tempFilePath As String
tempFilePath = Environ("TEMP") & "\tempChart.png"
Set chartObj = ThisWorkbook.Worksheets("DESSIN-F").ChartObjects(1)
chartObj.Chart.Export Filename:=tempFilePath, FilterName:="jpg"
Me.DF_CROQUIS_FENETRE.Picture = LoadPicture(tempFilePath)
' Supprimer les objets inutiles
chartObj.Delete
ws.Shapes("ESSAI").Delete
End Sub