Exporter une image excel dans un dossier
Résolu
BETBOOM
Messages postés
7
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour tous le monde,
dans un document excel j'utilise une macro assignée à un bouton de commande pour prendre une photo d'une partie de ma feuille et la coller un peu plus loin sur cette même feuille. Puis je copie l'image ainsi créée, la colle dans Paint, puis l'enregistre dans un dossier de mon ordinateur.
cependant, j'aimerai pouvoir réaliser cela sans devoir passer par l'étape Paint.
Du coup j'aimerai créer un deuxième bouton de commande qui exportera cette image dans un dossier bien défini avec un nom bien défini.
Ou encore mieux, avoir une macro qui pourra créer une image et l'exporter en une seule action.
ci dessous ma macro actuelle qui crée l'image:
Private Sub bouton1_Click()
Dim sh As Shape
Range("V62").Select
Worksheets("SB fold").Range("A62:P75").CopyPicture
Worksheets("SB fold").Paste
End Sub
Merci de votre aides
dans un document excel j'utilise une macro assignée à un bouton de commande pour prendre une photo d'une partie de ma feuille et la coller un peu plus loin sur cette même feuille. Puis je copie l'image ainsi créée, la colle dans Paint, puis l'enregistre dans un dossier de mon ordinateur.
cependant, j'aimerai pouvoir réaliser cela sans devoir passer par l'étape Paint.
Du coup j'aimerai créer un deuxième bouton de commande qui exportera cette image dans un dossier bien défini avec un nom bien défini.
Ou encore mieux, avoir une macro qui pourra créer une image et l'exporter en une seule action.
ci dessous ma macro actuelle qui crée l'image:
Private Sub bouton1_Click()
Dim sh As Shape
Range("V62").Select
Worksheets("SB fold").Range("A62:P75").CopyPicture
Worksheets("SB fold").Paste
End Sub
Merci de votre aides
A voir également:
- Exporter excel en jpg
- Liste déroulante excel - Guide
- Exporter favoris chrome - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
- Exporter conversation sms android - Guide
6 réponses
Bonjour
Pour éviter de te prendre la t^te avec des macros, pourquoi ne pas utiliser un logiciel gratuit de capture d'écran tel que faststone capture ; tu pourras enregistrer directement la capture dans un dossier (en plus tu peux l'annoter avec l'outil dessin)
https://www.clubic.com/telecharger-fiche18509-faststone-capture.html
Un exemple de capture pour une explication récente sur CCM-bureautique:

Cette capture est un exrmple qui n'a rien à voir avec ton souci...
Pour éviter de te prendre la t^te avec des macros, pourquoi ne pas utiliser un logiciel gratuit de capture d'écran tel que faststone capture ; tu pourras enregistrer directement la capture dans un dossier (en plus tu peux l'annoter avec l'outil dessin)
https://www.clubic.com/telecharger-fiche18509-faststone-capture.html
Un exemple de capture pour une explication récente sur CCM-bureautique:

Cette capture est un exrmple qui n'a rien à voir avec ton souci...
Bonjour. Car en fait je vais avoir 20 feuilles avec chacune 20 images a exporter. Et je serai susceptible de modifier les grilles puis de les réexporter. Donc trop long de capturer par logiciel a chaque modification. Pour le moment je copie colle l'image sur word, je fais clique droit, et enregistrer en tant qu'image sous. mais juste cliquer sur un bouton pour faire tout cela serait top.
bonjour,
comme ceci:
voilà
comme ceci:
Option Explicit
Sub Example1()
Dim i As Integer
Dim intCount As Integer
Dim objPic As Shape
Dim objChart As Chart
'copy the range as an image
Call Worksheets("Feuil1").Range("A1:E12").CopyPicture(xlScreen, xlPicture) 'adapter la feuille et la plage de cellule
'remove all previous shapes in sheet2
intCount = Worksheets("Feuil2").Shapes.Count 'adapter la feuille
For i = 1 To intCount
Worksheets("Feuil2").Shapes.Item(1).Delete
Next i
'create an empty chart in sheet2
Worksheets("Feuil2").Shapes.AddChart
'activate sheet2
Worksheets("Feuil2").Activate
'select the shape in sheet2
Worksheets("Feuil2").Shapes.Item(1).Select
Set objChart = ActiveChart
Worksheets("Feuil2").Shapes.Item(1).Width = Range("A1:E12").Width 'adapter la plage de cellule
Worksheets("Feuil2").Shapes.Item(1).Height = Range("A1:E12").Height 'adapter la plage de cellule
'paste the range into the chart
objChart.Paste
'save the chart as a JPEG
objChart.Export ("C:\Users\LePivert\Documents\Example.Jpeg") 'adapter le chemin
End Sub
voilà
Voilà la demande:
dans un document excel j'utilise une macro assignée à un bouton de commande pour prendre une photo d'une partie de ma feuille et la coller un peu plus loin sur cette même feuille. Puis je copie l'image ainsi créée, la colle dans Paint, puis l'enregistre dans un dossier de mon ordinateur.
c'est exactement ce que fait la macro!
dans un document excel j'utilise une macro assignée à un bouton de commande pour prendre une photo d'une partie de ma feuille et la coller un peu plus loin sur cette même feuille. Puis je copie l'image ainsi créée, la colle dans Paint, puis l'enregistre dans un dossier de mon ordinateur.
c'est exactement ce que fait la macro!
Merci, ta macro fonctionne bien, par contre elle se place a un endroit en feuille 2 que je n'arrive pas a modifier. ci joint mon fichier test. j'aimerai que l'image temporaire se place dans le cadre juste à droite, sur la même feuille nommé "BTN" sur la plage (U4:AG17):
ici ta macro modifié avec mes ranges:
Sub Example1()
Dim i As Integer
Dim intCount As Integer
Dim objPic As Shape
Dim objChart As Chart
'copy the range as an image
Call Worksheets("BTN").Range("A4:M17").CopyPicture(xlScreen, xlPicture) 'adapter la feuille et la plage de cellule
'remove all previous shapes in sheet2
intCount = Worksheets("SB").Shapes.Count 'adapter la feuille
For i = 1 To intCount
Worksheets("SB").Shapes.Item(1).Delete
Next i
'create an empty chart in sheet2
Worksheets("SB").Shapes.AddChart
'activate sheet2
Worksheets("SB").Activate
'select the shape in sheet2
Worksheets("SB").Shapes.Item(1).Select
Set objChart = ActiveChart
Worksheets("SB").Shapes.Item(1).Width = Range("A4:M17").Width 'adapter la plage de cellule
Worksheets("SB").Shapes.Item(1).Height = Range("A4:M17").Height 'adapter la plage de cellule
'paste the range into the chart
objChart.Paste
'save the chart as a JPEG
objChart.Export ("D:\Example.Jpeg") 'adapter le chemin
End Sub
bon par contre je ne pense pas qu'ici on puisse poster un fichier excel, ou alors je n'ai pas trouvé comment faire
ici ta macro modifié avec mes ranges:
Sub Example1()
Dim i As Integer
Dim intCount As Integer
Dim objPic As Shape
Dim objChart As Chart
'copy the range as an image
Call Worksheets("BTN").Range("A4:M17").CopyPicture(xlScreen, xlPicture) 'adapter la feuille et la plage de cellule
'remove all previous shapes in sheet2
intCount = Worksheets("SB").Shapes.Count 'adapter la feuille
For i = 1 To intCount
Worksheets("SB").Shapes.Item(1).Delete
Next i
'create an empty chart in sheet2
Worksheets("SB").Shapes.AddChart
'activate sheet2
Worksheets("SB").Activate
'select the shape in sheet2
Worksheets("SB").Shapes.Item(1).Select
Set objChart = ActiveChart
Worksheets("SB").Shapes.Item(1).Width = Range("A4:M17").Width 'adapter la plage de cellule
Worksheets("SB").Shapes.Item(1).Height = Range("A4:M17").Height 'adapter la plage de cellule
'paste the range into the chart
objChart.Paste
'save the chart as a JPEG
objChart.Export ("D:\Example.Jpeg") 'adapter le chemin
End Sub
bon par contre je ne pense pas qu'ici on puisse poster un fichier excel, ou alors je n'ai pas trouvé comment faire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
en gros sur la même et unique feuille qui s'appelle "BTN" j'ai une range (A4:M17) que j'aimerai mettre en image sur la range (U4:AG17) de la même feuille, et que celle-ci s'exporte dans un dossier de mon ordi. J'ai mis png plutot que jpeg car le résultat est de meilleure qualité. Il n'y a pas mieux que le png? il y a le bmp mais la qualité est identique au png apparemment, sauf que l'image est 40 fois plus volumineuse.
Comme ceci:
Voilà
@+ Le Pivert
Sub Example()
Dim i As Integer
Dim intCount As Integer
Dim objPic As Shape
Dim objChart As Chart
'copy the range as an image
Call Worksheets("BTN").Range("A4:M17").CopyPicture(xlScreen, xlPicture) 'adapter la feuille et la plage de cellule
'remove all previous shapes in sheet2
intCount = Worksheets("BTN").Shapes.Count 'adapter la feuille
For i = 1 To intCount
Worksheets("BTN").Shapes.Item(1).Delete
Next i
'create an empty chart in sheet2
Worksheets("BTN").Shapes.AddChart
'activate sheet2
Worksheets("BTN").Activate
'select the shape in sheet2
Worksheets("BTN").Shapes.Item(1).Select
Set objChart = ActiveChart
Worksheets("BTN").Shapes.Item(1).Top = Range("U4").Top
Worksheets("BTN").Shapes.Item(1).Left = Range("U4").Left
Worksheets("BTN").Shapes.Item(1).Width = Range("U4:AG17").Width 'adapter la plage de cellule
Worksheets("BTN").Shapes.Item(1).Height = Range("U4:AG17").Height 'adapter la plage de cellule
'paste the range into the chart
objChart.Paste
'save the chart as a JPEG
objChart.Export ("D:\Example.Jpeg") 'adapter le chemin
End Sub
Voilà
@+ Le Pivert
merci ta macro fonctionne très bien, par contre juste que quand je l'assigne à mes boutons de commande, elle les supprime une fois la macro effectuée. ci joint mon fichier excel qui prend forme :). en fait c'est apparemment lié au support que tu utilise pour y déposer l'image (sorte d'histogramme), quand il se supprime il supprime aussi mes boutons de commande.
https://www.cjoint.com/c/JFdoLGGqD24
https://www.cjoint.com/c/JFdoLGGqD24
Comme ceci:
@+ Le Pivert
Sub Example()
Dim i As Integer
Dim intCount As Integer
Dim objPic As Shape
Dim objChart As Chart
Dim s As Shape
'copy the range as an image
Call Worksheets("BTN").Range("A4:M17").CopyPicture(xlScreen, xlPicture) 'adapter la feuille et la plage de cellule
'remove all previous shapes sauf button
For Each s In ActiveSheet.Shapes
If s.Type <> 8 And s.Type <> 12 Then s.Delete
Next s
'create an empty chart in sheet2
Worksheets("BTN").Shapes.AddChart
'activate sheet2
Worksheets("BTN").Activate
'select the shape in sheet2
Worksheets("BTN").Shapes.Item(1).Select
Set objChart = ActiveChart
Worksheets("BTN").Shapes.Item(1).Top = Range("U4").Top
Worksheets("BTN").Shapes.Item(1).Left = Range("U4").Left
Worksheets("BTN").Shapes.Item(1).Width = Range("U4:AG17").Width 'adapter la plage de cellule
Worksheets("BTN").Shapes.Item(1).Height = Range("U4:AG17").Height 'adapter la plage de cellule
'paste the range into the chart
objChart.Paste
'save the chart as a JPEG
objChart.Export ("D:\Example.Jpeg") 'adapter le chemin
End Sub
@+ Le Pivert