Enregistrement d'une feuille en format BMP ou JPG
Bonjour à tous,
Je suis plutôt novice en VBA, mais j'essaye toujours de me débrouiller.
Actuellement je suis bloquer sur un programme.
J'arrive à enregistrer une feuille en pdf sans problème
Je pensais pouvoir faire une simple rectification de cette formule afin d'obtenir mon document en BMP ou JPG mais impossible....
Sub Enregistrer_pdfAI()
Dim LeRep As String
Dim oCdo As Object
ActiveSheet.PageSetup.PrintArea = "PLAGE1"
LeRep = "U:\"
' à adapter à l'emplacement ou tu souhaites enregistrer tes fichier PDF
'ici à la place de : ThisWorkbook.Path & "\" tu mets par exemple d:\EAP\
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
LeRep & Range("M4").Value & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, OpenAfterPublish:=False
End Sub
Avez vous des solutions à m'apporter ?
Ma plage est la suivante A1:V73
Lien d'enregistrement du fichier : U:\
Nom du fichier : M4
Bonjour Quentin D et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum
Ainsi que sur les fonctionnalités du nouveau forum
Merci de votre participation
Concernant votre demande, voici une solution de code
Sub CopyRangeToJPG(NameWorksheet As String, RangeAddress As String)
Dim PictureRange As Range, ImgW As Single, ImgH As Single
Dim sPath As String, sFic As String
' Définir le chemin d'enregistrement
sPath = Environ$("temp") & Application.PathSeparator
' Définir le nom
sFic = "NamePicture.jpg"
' Avec le classeur actif
With ActiveWorkbook
On Error Resume Next
'.Worksheets(NameWorksheet).Activate
Set PictureRange = .Worksheets(NameWorksheet).Range(RangeAddress)
If PictureRange Is Nothing Then
MsgBox "Désolé, mais la plage n'est pas correcte"
On Error GoTo 0
Exit Sub
End If
' Copier la plage
PictureRange.CopyPicture
' Mémoriser les dimensions
ImgW = PictureRange.Width
ImgH = PictureRange.Height
' Créer un graphique vide et y coller l'image
With .Worksheets(NameWorksheet).ChartObjects.Add(PictureRange.Left, _
PictureRange.Top, PictureRange.Width, PictureRange.Height)
.Activate
.Chart.Paste
.Chart.Export sPath & sFic, "JPG"
End With
.Worksheets(NameWorksheet).ChartObjects(.Worksheets(NameWorksheet).ChartObjects.Count).Delete
End With
Set PictureRange = Nothing
End SubQue vous pouvez appeler par
Call CopyRangeToJPG(ActiveSheet.Name, "PLAGE1")A+