Compression d'images de fond d'écran + ZOOM
Bonjour,
Je monte un fichier Excel qui sera utilisé par pas mal de personnes, dont beaucoup ne connaissent rien à Excel. J'essaie donc de rendre la "chose" la plus attrayante possible.
Pour ça, je place une image de fond, toujours la même, sur chaque page de mon projet.
Cette image est un JPG de +/-200ko, à l'origine.
Seulement voilà, quand je sauvegarde mon fichier Excel qui contient 5 pages comprenant chacune mon image, mon fichier pèse près de 50Mo (au lieu de 10Mo sans image)
J'en déduis donc que:
1° Il considère chaque image de chaque page comme une image indépendante des autres. En somme, il charge 5 fois la même image plutôt qu'une seule fois pour toute.
2° Il ne garde pas la compression JPG et la convertit en un format différent, décompressé (bmp ?)
Est-il possible de parer ces deux problèmes ? Si oui, comment ?
Petite autre question,
Pour chaque page, j'utilise le code suivant:
Private Sub Worksheet_Activate()
ThisWorkbook.RefreshAll
Range("A:AL").Select
Range("H1").Activate
ActiveWindow.Zoom = True
Range("A1").Select
End Sub
Ce qui permet de zoomer sur la partie intéressante, ce qui déstabilise moins l'utilisateur.
Seul très léger problème, l'écran flashe une demie seconde en faisant sa sélection de case, en zoomant, puis en dé sélectionnant les cases.
C'est pas vraiment un problème, mais ça ne fait pas très "pro". Je me demandais si il existe un code pour zoomer automatiquement sans faire de sélection au préalable.
Merci à vous,
balty
Salut Balty,
pour ta deuxième question tu essaie ceci:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
ThisWorkbook.RefreshAll
Range("A:AL").Select
Range("H1").Activate
ActiveWindow.Zoom = True
Range("A1").Select
Application.ScreenUpdating = True
End Sub
A+
F.
Salut Balty, François et le forum
Pour ton image, il suffit de la mettre dans le même répertoire que ton application, et avec les évenements ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SupprimerImageFond
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SupprimerImageFond
End Sub
Private Sub Workbook_Open()
AfficherImageFond
End Sub
Tu places les macros suivantes, dans un module
Public Feuille As Worksheet
Sub AfficherImageFond()
For Each Feuille In Worksheets
Feuille.SetBackgroundPicture Filename:=ActiveWorkbook.Path & "\Coucher de soleil.jpg"
Next Feuille
End Sub
Sub SupprimerImageFond()
For Each Feuille In Worksheets
Feuille.SetBackgroundPicture Filename:=""
Next Feuille
End Sub
Mytå
Re le forum
Pour la première question, tu peux tester aussi
Private Sub Worksheet_Activate()
ThisWorkbook.RefreshAll
ActiveSheet.Range("A:AL").Select
ActiveWindow.Zoom = True
Range("A1").Select
End Sub
Mytå
Salut Myta,
le seul problème avec une image externe est que quand on déménage le classeur il faut penser à déménager l'image aussi. Sinon beau plantage en vue.
Cela dit, moi les images en background ... pas ma tasse de thé. Mais ca c'est un autre débat
Salut François
Il reste sinon la possibilité de ne garder l'image que sur la première feuille, et d'effectuer
par macro la copie sur les autres feuilles.
Comme toi, je ne suis pas un fervent des images en fond de feuilles, mais si Balty
aime cela c'est son droit
Sur un fichier de test
Pas d'image 22K
Image sur 1 feuille 1440K
Image sur 3 feuilles 4276K
Mytå
Edition pour corriger une erreur
Il reste sinon la possibilité de ne garder l'image que sur la première feuille, et d'effectuer par macro la copie sur les autres feuilles.
Je ne crois pas que cela soit exploitable, facilement .....
J'avoue qu'une image de fond peut facilement rendre le tout assez moche ou "quétaine" (comme on dit ici).
Mais je ne met pas des images de chute d'eau ou de coucher de soleil romantique, mais bien des images plus abstraites et assez discrètes.
Discrètes, et pourtant dès qu'on l'enlève, ça rend le tout beaucoup plus austère.
Évidemment, il y a le problème du poids, mais dans mon cas, ça n'est vraiment pas un problème.
Merci pour les solutions. Mytå, je vais garder ta première proposition, puisqu'à mon fichier principal, je vais devoir joindre un répertoire contenant plusieurs listes de prix. J'y ajouterai mon image de fond.
À bientôt.