XL 2010 (resolu)export plage en jpg

MASSJIPE

XLDnaute Impliqué
Bonsoir le forum
j'utilise ce code qui fonctionne mais il crée un nouveau classeur se que je ne veux pas
mais je ne sais pas comment le modifier
dans un premier temps il faut que l'image enregistré est nommé selon la cellule A1
et que en E23 apparaît le chemin ou l'image est enregistré
merci
VB:
Sub CopiePlageDeCelluleEtExporterImage()

Application.ScreenUpdating = False
With Sheets("feuil1")
.Activate
Workbooks.Add
.Range("A1:Y25").CopyPicture
With ActiveSheet
.Paste
With .ChartObjects.Add(0, 0, _
Selection.Width, Selection.Height).Chart
.Paste
.ChartArea.Border.LineStyle = 0
End With
With .ChartObjects(1)
.Top = 0
.Left = 0
.Chart.Export "C:\Users\Jean-Paul. Masson\Pictures\photo mer.jpg", "jpg"
End With
End With
End With

End Sub
 

Pièces jointes

  • photo mer.xlsm
    208.4 KB · Affichages: 43

Staple1600

XLDnaute Barbatruc
Re à tous

MASS JIPE
Comme le fil cité dans mon précédent message est long, je mets le dernir code que j'avais fait et qui peut servir ici
VB:
Private Sub xlsObj2HTM(F As Worksheet, NomFic$, Optional XPath$ = "C:\Temp\IMGS")
'Changer C:\Temp\IMGS par le nom de dossier de votre choix
'le chemin doit être valide et donc les dossiers déjà existants
ActiveWorkbook.WebOptions.UseLongFileNames = False
ActiveWorkbook.PublishObjects.Add(1, XPath & NomFic & ".htm", F.Name, "", 0).Publish (True)
End Sub

Sub testII()
Dim nom$
nom = InputBox("Saisir le nom du fichier d'export", "XL Export Objets en Images", Format(Date, "ddmmyyyy"))
If StrPtr(nom) = 0 Then
Exit Sub
ElseIf Len(nom) Then
xlsObj2HTM ActiveSheet, nom
Else
Exit Sub
End If
End Sub
Donc copie au préalable ta plage de cellules en image puis lance la macro testII
et va ensuite dans le dossier d'export, tu y trouveras plein de choses ;)
 

Staple1600

XLDnaute Barbatruc
Bonjour à tous

MASSJIPE
Tu as mal regardé ;)
C'est pas le fichier htm qui compte ici mais le dossier créé en même temps que le fichier.
C'est dans ce dossier qu'il y a l'image exportée en jpg

En reprenant le code de ton premier message et en cherchant quelques compléments dans mes archives, teste la macro nommée Sub TestExportJPG en adaptant
il faudra changer Feuil2 par le nom "codename" de ta feuille et changer aussi "A1:C10"
L'image est enregistrée dans le dossier du classeur contenant la macro.
VB:
Sub TestExportJPG()
Dim strPath$
strPath = ThisWorkbook.Path & "\"
RangeToJPG Feuil2, "A1:C10", strPath & "ExportPlage.jpg"
End Sub
Private Sub RangeToJPG(WKS As Worksheet, Adresse As String, NomImage As String)
Dim Graf As Chart
With WKS.Range(Adresse)
.CopyPicture 1, -4147
Set Graf = WKS.ChartObjects.Add(10, 10, .Width, .Height).Chart
End With
Graf.Paste: Graf.ChartArea.Border.LineStyle = 0
On Error Resume Next
Kill NomImage
On Error GoTo 0
Graf.Export NomImage, "jpg": Graf.Parent.Delete
End Sub

Pour prendre en compte tes paramètres, tu peux essayer
VB:
Sub TestExportJPG_BIS()
Dim strPath$
strPath = Feuil2.Range("E23") &"\"
RangeToJPG Feuil2, "A1:Y25", strPath & Feuil2.range("A1") & ".jpg"
End Sub
Avec en E23, un path valide sans le \ final
Avec en A1 le nom de l'image sans l'extension
et en mettant à la place de Feuil2, le codename de la feuille où est la plage à exporter en jpg
 
Dernière édition: