Microsoft 365 sauvegarder en JPG

PISTACHE-007

XLDnaute Nouveau
Bonjour,

Ci-dessous une macro qui me permet d'enregistrer toutes les feuilles d'un classeur (à partir de la 4ème feuille) dans des fichiers PDF séparés.

Je souhaiterais que cette macro, en plus, enregistre ces mêmes feuilles dans des fichiers JPG portant les mêmes noms.

Je n'arrive pas à trouver une telle fonction.


Sub Macro1()
Application.ScreenUpdating = False
On Error Resume Next
MkDir "c:\mesdocuments"
For i = 4 To Sheets.Count
Sheets(i).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\mesdocuments\" & Sheets(i).Name & " - " & [I5] & ".pdf"

Next i
Sheets(2).Select
Application.ScreenUpdating = True
MsgBox ("Les " & Sheets.Count - 3 & " documents PDF viennent d'être créés et son disponnibles dans le répertoire C:\mesdocuments ")
End Sub
 
Dernière édition:

PISTACHE-007

XLDnaute Nouveau
Bonjour,

Ci-dessous une macro qui me permet d'enregistrer toutes les feuilles d'un classeur (à partir de la 3ème feuille) dans des fichiers PDF séparés.

Je souhaiterais que cette macro, en plus, enregistre ces même feuilles dans des fichiers JPG portant les mêmes noms.

Je n'arrive pas à trouver une telle fonction.


Sub Macro1()
Application.ScreenUpdating = False
On Error Resume Next
MkDir "c:\mesdocuments"
For i = 4 To Sheets.Count
Sheets(i).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\mesdocuments\" & Sheets(i).Name & " - " & [I5] & ".pdf"

Next i
Sheets(2).Select
Application.ScreenUpdating = True
MsgBox ("Les " & Sheets.Count - 3 & " documents PDF viennent d'être créés et son disponnibles dans le répertoire C:\mesdocuments ")
End Sub

J'ai essayé avec la macro ci-dessous.
La première partie fonctionne. La macro crée l'image dans le Presse papier puis la colle dans la feuille.

Par contre la seconde partie ne fonctionne pas, elle ne sauvegarde par le fichier image et ne suprime pas le tableau crée de la feuille.

Sub image()
Application.ScreenUpdating = False
On Error Resume Next
MkDir "c:\mesdocuments"
For i = 4 To Sheets.Count
Sheets(i).Range("A1:O30").CopyPicture
Sheets(i).Paste
With Sheets(i).ChartObjects.Add(0, 0, Selection.Width, Selection.Height).Chart
.Export "C:\mesdocuments\" & Sheets(i).Name & " - " & [I5] & ".jpg"
Sheets(i).ChartObjects.Delete
End With

Next i

Sheets(2).Select
Application.ScreenUpdating = True
MsgBox ("Les " & Sheets.Count - 3 & " documents JPG viennent d'être créés et son disponnibles dans le répertoire C:\mesdocuments ")
End Sub
 

patricktoulon

XLDnaute Barbatruc
bonjour
c'est quoi la plage exactement?
1706543273758.png
 

patricktoulon

XLDnaute Barbatruc
re
tiens tu changera l'adresse de la plage
VB:
Sub image()
    Dim p As Range, I&, Chemin$, Q&, Folder
    Application.ScreenUpdating = False
    Folder = "C:\mesdocuments"
    If Dir(Folder, vbDirectory) = "" Then MkDir Folder
    For I = 1 To Sheets.Count
        Chemin = Folder & "\" & Sheets(I).Name & " - " & [I5] & ".jpg"
        Set p = Sheets(I).Range("A1:z30")
        p.CopyPicture
        With Sheets(I)
            With .ChartObjects.Add(0, 0, p.Width, p.Height)
                Do While .Chart.Pictures.Count = 0
                    .Chart.Paste
                Loop
                .Chart.Export Chemin
                .Delete
            End With
        End With
        Q = Q + 1
    Next I

    Sheets(2).Select
    Application.ScreenUpdating = True
    MsgBox ("Les " & Q & " documents JPG viennent d'être créés et son disponnibles dans le répertoire C:\mesdocuments ")
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
Bonsoir @TooFatBoy
ben change le "z" pour "O" ;)
VB:
Sub image()
    Dim p As Range, I&, Chemin$, Q&, Folder
    Application.ScreenUpdating = False
    Folder = "C:\mesdocuments"
    If Dir(Folder, vbDirectory) = "" Then MkDir Folder
    For I = 1 To Sheets.Count
        Chemin = Folder & "\" & Sheets(I).Name & " - " & [I5] & ".jpg"
        Set p = Sheets(I).Range("A1:O30")
        p.CopyPicture
        With Sheets(I)
            With .ChartObjects.Add(0, 0, p.Width, p.Height)
                Do While .Chart.Pictures.Count = 0
                    .Chart.Paste
                Loop
                .Chart.Export Chemin
                .Delete
            End With
        End With
        Q = Q + 1
    Next I

    Sheets(2).Select
    Application.ScreenUpdating = True
    MsgBox ("Les " & Q & " documents JPG viennent d'être créés et son disponnibles dans le répertoire C:\mesdocuments ")
End Sub
 

PISTACHE-007

XLDnaute Nouveau
Merci pour la réponse mais il y a un problème.

Si je lance la macro elle se met à tourner dans le vide et je dois faire une shutdown d'excel.

Si je fais "pas à pas détaillé" cela fonctionne pour la première boucle mais quand I passe à 2 =>1004 erreur d'exécution sur

With Sheets(I)
With .ChartObjects.Add(0, 0, p.Width, p.Height)


De plus je ne dois faire cette procédure qu'à partir de la 4ème feuille.
Si dans la macro je change
1 To Sheets.Count par 2 To Sheets.Count ou par 4 To Sheets.Count =>1004 erreur d'exécution à la première boucle.

Donc en conclusion ça bug quand I est différent de 1.
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
puré!! quelle feuille tu dois copier en image et quelle autre tu ne dois pas copier ?
ta feuille coatching est vide je supose que celle là elle n'est pas a copier ?
la feuille Modele c'est ton modèle je suppose que celle là non plus c'est pas la peine de la copier ?
bref faites des éfforts dans vos demandes on est pas devins
c'est pas compliqué pourtant de donner ce genre de detail non ?
au final dans ce fichier je n'en vois qu'une de feuille à copier

Allez refait ta demande aussi détaillée que possible :rolleyes:
 

PISTACHE-007

XLDnaute Nouveau
Désolé je pensais que j'avais été clair dans le premier message et que la feuille data complétait cette info.

Le fichier sert à éditer des fiches d'évaluation.

J'ai besoin In Fine d'obtenir pour la suite une copie PDF ET une copie .JPG (à tout le moins image) de chacune des fiches d'évaluation.

A partir de la feuille DATA j'inscris une liste de personnes à évaluer dans la collonne A.

Ensuite cliquer "ajouter feuille" => Macro crée par participant une feuille au nom de chaque participant. (Donc à partir de la feuille n° 4 et plus on a les feuilles à imprimer en fonction du nombre de participants).

Je complète les différentes feuilles créés avec les différents critères d'évaluation + remarques.

Ensuite retour à la feuille data . Cliquer sur "Imprimer Fiches" => Macro Impression PDF des différentes évaluations dans des fichiers séparés dans C:\mesdocuments \ "nom participant + date de l'évaluation".

Jusque là tout va bien.

la macro "image" devrait servir à "l'impression" .JPG, mais c'est cette macro qui ne fonctionne pas.

Elle pourra être effectuée séparément ou à la suite de la "macro1" (qui est la macro PDF qui fonctionne)


Voici une version du fichier avec les feuilles déjà créées pour 3 participants. Ce sont ces feuilles qu'il faut enregistrer au format .JPG.
La macro doit pouvoir s'adapter au nombre de fiches à imprimer en fonction des personnes présentes.

Merci.
 

Pièces jointes

  • - blanco1. test 2xlsx - Copie.xlsm
    72.7 KB · Affichages: 2
Dernière édition:

PISTACHE-007

XLDnaute Nouveau
Désolé je pensais que j'avais été clair dans le premier message et que la feuille data complétait cette info.

Le fichier sert à éditer des fiches d'évaluation.

J'ai besoin In Fine d'obtenir pour la suite une copie PDF ET une copie .JPG (à tout le moins image) de chacune des fiches d'évaluation.

A partir de la feuille DATA j'inscris une liste de personnes à évaluer dans la collonne A.

Ensuite cliquer "ajouter feuille" => Macro crée par participant une feuille au nom de chaque participant. (Donc à partir de la feuille n° 4 et plus on a les feuilles à imprimer en fonction du nombre de participants).

Je complète les différentes feuilles créés avec les différents critères d'évaluation + remarques.

Ensuite retour à la feuille data . Cliquer sur "Imprimer Fiches" => Macro Impression PDF des différentes évaluations dans des fichiers séparés dans C:\mesdocuments \ "nom participant + date de l'évaluation".

Jusque là tout va bien.

la macro "image" devrait servir à "l'impression" .JPG, mais c'est cette macro qui ne fonctionne pas.

Elle pourra être effectuée séparément ou à la suite de la "macro1" (qui est la macro PDF qui fonctionne)


Voici une version du fichier avec les feuilles déjà créées pour 3 participants. Ce sont ces feuilles qu'il faut enregistrer au format .JPG.
La macro doit pouvoir s'adapter au nombre de fiches à imprimer en fonction des personnes présentes.

Merci.
Toujours pas de solution ?
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 133
Membres
112 667
dernier inscrit
foyoman