Exporter une feuille excel sous forme image

Fermé
Bana13 - 5 sept. 2018 à 20:33
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 5 sept. 2018 à 22:59
Bonjour à la communauté!

Bon voilà, je viens juste de me mettre à la VBA. C'est dire qu'à l’état actuel, je suis un pur débutant. Ok voici mon problème.

A la base, je souhaiterais afficher un aperçu de ma feuille Excel (en l’occurrence une facture) dans un userform afin de le visualiser et l'imprimer ensuite. J’utilise la version 64 bits d'excel 2016, alors le contrôle active X Acrobat PDF ne marche pas. Alors j'ai pensé à la solution image. Pour cela, je voudrais y aller en 2 étapes:

1. Pouvoir exporter ma facture en image, et
2. Importer l'image et le visualiser dans l'userform.

A ce instant ci, je suis toujours à la première étape. J'ai pu trouver un brin de code sur google qui a l'air de marcher, mais mon soucis, c'est qu'il exporte une image vide! Pas de données. Alors qu'à la la base, ma facture contient du texte, chiffre, tableaux et images (logos).

Ci-dessous le code!


Sub Userform_Initialize()

Dim Plage As Range
' Exportation en .gif de la plage A1:I25 (feuille active)
Set Plage = ActiveSheet.Range("A1:g36")
Application.ScreenUpdating = False
Workbooks.Add: Plage.CopyPicture: ActiveSheet.Paste
With ActiveSheet.ChartObjects.Add(0, 0, Selection.Width, Selection.Height).Chart
.Paste
.Export "C:\Users\KPATCHA\Desktop\Gombo.Facture.jpg", "JPG"
End With
ActiveWorkbook.Close False

End Sub


Quelqu'un pourrait-il m'aider à comprendre et solutionner ce qui ne va pas dans mon code,
Ou bien pourrait-on me proposer meilleure alternative? Dans tous les cas, je suis preneur!

Cordialement!



A voir également:

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
5 sept. 2018 à 20:42
Bonjour,

Si c'est une facture, pourquoi ne pas l'enregistrer en PDF et l'imprimer ensuite?


https://forums.commentcamarche.net/forum/affich-35567250-zone-d-impression-pdf#p35568180

0
Merci Le pivert pour votre suggestion. En effet, la solution PDF paraît la plus simple comme j'ai eu à le préciser dans mon premier message. Et votre technique marche super bien.

Quoique mon but est de pouvoir afficher le contenu de la feuille, donc si on retient votre proposition, le PDF donc dans l'Userform. Mais avec mon Excel version 64 bits, j'ai pas accès au contrôle Active X Acrobat PDF. C'est pour cela que je me suis orienté vers la solution image.

Ou bien y aurait il une autre manière originale de d'afficher un pdf dans userform sans le contrôle AcroPDF?

En attendant une meilleure alternative, je laisse mon code au bons soins de qui pourra y déceler ce qui cloche.

Codialement
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 5 sept. 2018 à 23:00
comme ceci:

voir control Image

https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-K

Option Explicit
'https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-K
Private Sub CommandButton1_Click()
Dim Img As String, Plage As Range
Dim PathTmp As Variant
   Set Plage = Application.InputBox("Sélectionnez la plage:", Type:=8)
   'répertoire temporaire
PathTmp = ThisWorkbook.Path & "\Image.jpg"
Img = "Image.jpg"
   'Création d'un fichier image dans le répertoire temporaire
    Plage.CopyPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Plage.Width, Plage.Height)
        .Activate
        .Chart.Paste
        .Chart.Export PathTmp, "JPG"
    End With
     ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete
      Image1.Picture = LoadPicture(PathTmp)
End Sub


Voilà

@+ Le Pivert
0