Capture d'ecran enregistre dans un fichier
Bonjour à tous,
je sais que le sujet des captures d'écran a plusieurs fois était abordé mais malgré tout ce que je trouve sur les forums, je n'arrive pas à l'adapter à ma problématique et je vous avoue avoir besoin d'un petit coup de pouce.
je cherche à faire une capture d'écran et que celle ci s'enregistre dans un fichier.
vous trouverez ci-joint un fichier exemple.
merci d'avance.
Bonjour Le Nen Samuel
Tu peux utiliser ce genre de fonction
Sub CopyRangeToJPG(NameWorksheet As String, RangeAddress As String)
Dim PictureRange As Range, sPathEnr as String
Dim ImgW As Integer, ImgH As Integer
' Avec ce classeur
With ActiveWorkbook
On Error Resume Next
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
End If
' Copier la plage
PictureRange.CopyPicture
' Mémoriser les dimensions
ImgW = PictureRange.Width : ImgH = PictureRange.Height
' Chemin d'enregistrement
sPathEnr = CreateObject("WScript.Shell").SpecialFolders("Desktop")
' 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 sPathEnr & Application.PathSeparator & "Pomme.jpg", "JPG"
End With
.Worksheets(NameWorksheet).ChartObjects(.Worksheets(NameWorksheet).ChartObjects.Count).Delete
End With
Set PictureRange = Nothing
End SubEn l'appelant par
Call CopyRangeToJPG("Pomme", "B3:L30")A+
Au top ! Merci beaucoup ! Ça fonctionne nickel ! J'ai du enlever le "exit function" qui me bloquait. Mais sans ça, ça fonctionne très bien.
par contre comment je peux faire pour que l'image s'enregistre dans un dossier et pas directement sur le bureau ? J'ai essayé de mettre l'adresse de mon dossier à la place du "desktop" mais ça marche pas.
Re,
Sérieux
L'instruction
CreateObject("WScript.Shell").SpecialFolders("Desktop")Permet uniquement de trouver le chemin spécial Windows du bureau
Sinon, il suffit de faire (par exemple)
sPathEnr = "C:\Temp"A+
Encore merci ça fonctionne à merveille.
je viens de réessayer à la maison et cette fois ci je n'est pas pas eu a enlever exit function.
Et je me demandais si c'était possible de faire exactement la même chose mais pour l'intégralité de ce qu' affiche mon écran ?
Sans vouloir abuser de votre gentillesse et de votre temps bien sûr.