Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Faire une capture d'écran d'une feuille Excel

mike888

XLDnaute Nouveau
Salut !

Je cherche comment réaliser une capture d'écran de ma feuille Excel, en sachant que le contenu de la feuille dépasse vers le bas (donc un bête "print screen" ne m'est pas utile...) ?

Merci !
 
C

Compte Supprimé 979

Guest
Bonjour Mike888

Voici
VB:
Sub Range_To_Image()
  Dim ObjChrt As Chart
  Dim RngImage As Range
  Dim strFile As String

  On Error GoTo ErrExit
  With ActiveSheet
    Set RngImage = .Range("A1:L150")
    RngImage.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
    strFile = "C:\Users\TOTO\Desktop\Plage.jpg"
    Set ObjChrt = .ChartObjects.Add(RngImage.Left, RngImage.Top, RngImage.Width, RngImage.Height).Chart
    With ObjChrt
        .Parent.Activate
        .ChartArea.Format.Line.Visible = msoFalse
        .Paste
        .Export strFile
        .Parent.Delete
    End With
  End With

ErrExit:
  Set ObjChrt = Nothing
  Set RngImage = Nothing
End Sub

A+
 

Efgé

XLDnaute Barbatruc
Bonjour Mike888, bonjour BrunoM45.
Selection de la zone puis
Accueil / copier / Copier comme image /
Choisir les optios (Bitmap fonctionne généralement mieux) / ok
L'image est dans ton presse papier et tu peux la coller ou tu veux avec un simple Ctrl+V
Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Mike, Bruno, Efgé,
Ou en utilisant l'appareil photo d'XL, avec :
VB:
Sub Photo()
    ' Selectionne la zone B2:D64, prends la photo et la range en Feuil2
    Range("B2:D64").CopyPicture Appearance:=xlScreen, Format:=xlPicture
    Sheets("Feuil2").Select
    ActiveSheet.Paste
End Sub
 

Pièces jointes

  • PrencdreUnePhoto.xlsm
    41.2 KB · Affichages: 6

patricktoulon

XLDnaute Barbatruc
Bonjour à tous


  1. Attention à l'image blanche dans certaines versions et/ou (association excel/windows) récentes la latence du clipboard a triplé depuis 2016
  2. Attention aussi a une éventuelle précédente capture ou image qui se trouverait dans le clip (c'est elle qui sera coller dans le chart pas la capture !!!)
  3. on généralise la base chemin avec environ (ou autres methodes)
  4. le format export en gif est plus net(on le vois quand on zoom fort après sur l'image
VB:
Sub Range_To_Image()
    Dim RngImage As Range, strFile As String
    strFile = Environ("userprofile") & "\Desktop\Plage.gif"    'on exporte en gif c'est plus nette qu'en jpg
    On Error GoTo ErrExit    ' je laisse la gestion d'erreur au cas ou il y aurait une protection par exemple
    With ActiveSheet
        Set RngImage = .Range("A1:L150")
        Application.CutCopyMode = False    ' on vide la memoire au cas ou une precedente capture serait dans le clip( NON GARANTIE !!!!!pas tout le temps effectif seules les apis pourront vider réellement le clip)
        RngImage.CopyPicture    ' on copy en WMF plus rapide
        With .ChartObjects.Add(10, 10, RngImage.Width, RngImage.Height).Chart
            .Parent.Activate
            .ChartArea.Format.Line.Visible = msoFalse
            .Paste
            ' on évite d'avoir une image blanche sur certaines versions d'office récentes en attendant qu'il y est une image collée dans le chart
            Do While .Pictures.Count = 0: DoEvents: Loop
            .Export strFile
            .Parent.Delete
        End With
    End With

ErrExit:
    Set ObjChrt = Nothing
    Set RngImage = Nothing
End Sub
 

Roro711

XLDnaute Nouveau
Bonjour BrunoM45,

Petite question, et si je veux sélectionner une plage qui sera variable comment je dois faire ?
Explication, c’est un tcd le nombre de colonne sera toujours identique mais les lignes non, du coup j’ai essayé avec :
Range("B5: D5").Select
Range(Selection,Selection.End(xlDown)).Select
Mais ça ne fonctionne pas,
Help me please
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
415
  • Question
Microsoft 365 Excel365
Réponses
2
Affichages
186
Réponses
9
Affichages
317
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…