Bonjour,
J'ai créé un petit fichier pour générer des croquis.
Avec des boutons radio pour afficher ou cacher des images, à la fin la macro fait une capture d’écran pour créer un .jpg
J'utilise la fonction zoom dans la macro afin d'augmenter la qualité de l'image (sans zoom la capture est plus moche que l'original).
Mon probleme: La résolution finale est trop grande, j'aimerais au pire obtenir une image de la même taille que celle affichée dans Excel. (mais vu que j'utilise la fonction zoom pour augmenter la qualité l'image est plus grande).
Au mieux, j'aimerais que l'image générée soit plus petite que celle afficher dans Excel.
Savez vous comment je pourrais faire ca ?
Merci d'avance pour votre aide.
Voici à quoi ressemble le code :
J'ai créé un petit fichier pour générer des croquis.
Avec des boutons radio pour afficher ou cacher des images, à la fin la macro fait une capture d’écran pour créer un .jpg
J'utilise la fonction zoom dans la macro afin d'augmenter la qualité de l'image (sans zoom la capture est plus moche que l'original).
Mon probleme: La résolution finale est trop grande, j'aimerais au pire obtenir une image de la même taille que celle affichée dans Excel. (mais vu que j'utilise la fonction zoom pour augmenter la qualité l'image est plus grande).
Au mieux, j'aimerais que l'image générée soit plus petite que celle afficher dans Excel.
Savez vous comment je pourrais faire ca ?
Merci d'avance pour votre aide.
Voici à quoi ressemble le code :
Code:
'On zoom a 300 pourcent pour augmenter la qualité de la capture
ActiveWindow.Zoom = 200
'Copie la cellule en tant qu'image
.Range("A1:A3").CopyPicture
'Créer un graphique temporaire
With .ChartObjects.Add(Cells(1, 1).Left, Cells(1, 1).Top, Cells(1, 1).Width, Cells(1, 1).Height).Chart
'Y passe l'image
.Paste
'Exportation dans le répertoire du fichier xl
.Export ThisWorkbook.Path & "\" & Nom_Fichier & "_croquis.jpg", FilterName:="jpg"
End With
'On repasse en zoom 100 pourcent
ActiveWindow.Zoom = 100
'Supprimer le graphique temporaire
.ChartObjects(Feuil1.ChartObjects.Count).Delete