enregistrer une feuille excel au format JPG

luckiluc

XLDnaute Nouveau
Bonjour je vous expose mon problème
J’ai un classeur avec 17 feuilles et un module (mot de passe avec des astérisques)
Dans les 17 feuilles j ai une feuille index (accès au autre feuilles par mot de passe), une feuille maintenance (pour moi), et une feuille base (pour un calcul des jours férié), et une feuille tableau (récapitulatif des feuilles « employés »)
Les autres feuilles (13) sont pour remplir les heures des employés. Sur chacune des feuilles du planning se trouvent le calcul des jours automatique, le nombre de jour ouvré, … l’employe n’a plus qu’à mettre ces heures effectué.
Mon problème actuel est le suivant, je passe par la feuille maintenance (avec mot de passe) pour enregistrer une copie du classeur et ensuite effacer les cellules non verrouillé des 13 feuilles du classeur actuel. (remize à zéro du classeur)
Et j aimerais que les personnes qui accède au copie ne puissent pas faire de modification ou de doublon modifié.
Et il possible d’enregistrer les 13 feuilles « employer » au format .JPG pour sauvegarde dans un dossier ex :« sauvegarde09_2009 », et ce dans le dossier d’origine ou se trouve mon classeur grâce a un bouton « enregistrer » dans la feuille « maintenance »
De cette manière, les feuilles ne pourront être modifiées, et pourront être lu à partir du format image.JPG
Merci de m’en détailler le code car je suis novice
Je pratique VB que depuis 2 semaines…
 

luckiluc

XLDnaute Nouveau
Re : enregistrer une feuille excel au format JPG

Bonjour job75, bonjour le forum,
Merci pour ces indications je vais installer Excel 2003, puis je teste en espérant que tout fonctionne
:p
edit:
en fait ne problème rencontré vient du fait de ma version de Windows j’utilise chez moi un pc récent avec Windows seven et sous seven ton ficher ne fonctionne pas correctement
a partir du moment ou je suis passer sur Windows xp ton ficher a été impec même avec Excel 2007 , maintenant il faut que je mette ta macro dans mon classeur encore merci
si quelqu'un a une version de seven et peut me dire pourquoi il me fait bloquer le fichier j’aurais peut être besoin d’une copie du classeur pouvant tournée sous Windows seven(7)
par avance merci
 
Dernière édition:

luckiluc

XLDnaute Nouveau
Re : enregistrer une feuille excel au format JPG

bonsoir a tous
job75 merci pour le travail c'est impeccable,
par contre il y t'il possibilité de capture l'écran mais réduis a 90% au lieux de 100% ou alors celection de cellule = A1:M39
car selon si les employer étaient sur la cellule « A1 » ou « F39 » la capture ne se fait pas de la même position et par apport a l'écran il me manque des informations (haut ou bas du tableau inclus dans les feuilles)
 

job75

XLDnaute Barbatruc
Re : enregistrer une feuille excel au format JPG

Bonjour luckiluc,

J'ai pris l'exemple de la plage A1:M52 que l'on veut voir sur toutes les feuilles.

La macro cadre d'abord la plage dans le coin supérieur gauche de la feuille, puis fait un zoom ajusté à la sélection :

Code:
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)

Sub CreerImage()
Dim tablo(), mdp(), i As Byte
ThisWorkbook.Save 'enregistre le fichier
tablo = Array("Feuil1", "Feuil2", "Feuil3", "Feuil4")
mdp = Array("aa", "bb", "cc", "dd") 'inutile si un seul mot de passe
For i = 0 To UBound(tablo) 'sur chaque feuille du tableau
  Sheets(tablo(i)).Activate
  ActiveSheet.Unprotect mdp(i) 'ôte la protection de la feuille
  [COLOR="Red"]Application.Goto Range("A1:M52"), True 'éventuellement : Application.Goto [COLOR="Blue"]ActiveSheet.UsedRange[/COLOR], True
  ActiveWindow.Zoom = True
  ActiveCell.Select[/COLOR]
  Application.ScreenUpdating = True
  keybd_event vbKeySnapshot, 1, 0, 0
  DoEvents
  Application.ScreenUpdating = False
  Range("A1").Select
  ActiveSheet.Paste
  [COLOR="Red"]ActiveWindow.Zoom = 100[/COLOR]
  Call FichierJPEG(Selection, ActiveSheet.Name)
Next
Application.OnTime Now, "Ouvre" 'permet de rouvrir le fichier
ThisWorkbook.Close False 'ferme le fichier sans enregistrer les modifications
End Sub

Sub FichierJPEG(ob As Object, feuil As String)
Dim nb As Byte
ob.CopyPicture
With ActiveSheet.ChartObjects.Add(0, 0, ob.Width, ob.Height).Chart
  .Paste
  .Export ThisWorkbook.Path & "\" & feuil & ".jpg", "JPG"
End With
nb = ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(nb).Delete
ob.Delete
End Sub

Sub Ouvre()
End Sub

Edit 1 : avant de lancer la macro, regardez les 4 feuilles...

Edit 2 :
sous seven ton ficher ne fonctionne pas correctement
Avec un peu plus d'explications sur ce qui ne va pas, peut-être pourrait-on faire quelque chose...

A+
 

Pièces jointes

  • Fichier JPEG(3).xls
    41 KB · Affichages: 101
Dernière édition:

luckiluc

XLDnaute Nouveau
Re : enregistrer une feuille excel au format JPG

bonsoir à tous
effectivement après avoir remis les 0& , 0& cela fonctionne sauf que maintenant il y a l'erreur suivante =>" erreur d'exécution" impossible de vider le presse papiers.
je clic sur débogage et j'obtient la ligne suivante =>ob.CopyPicture

sinon sous xp cela tourne impect!!
 

job75

XLDnaute Barbatruc
Re : enregistrer une feuille excel au format JPG

Bonsoir luckiluc,

Essayez simplement ob.Copy ça marche aussi sous XP...

Edit : pour vider le presse-papier à la fin, j'ai rajouté :

Code:
Range("IV1").Copy Range("IV1") 'vide le presse-papier

A+
 

Pièces jointes

  • Fichier JPEG(4).xls
    43 KB · Affichages: 79
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji