Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Uniformiser le zoom

  • Initiateur de la discussion Initiateur de la discussion pricer
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pricer

Guest
Bonjour,

J'ai un classeur avec plusieurs feuilles. Je souhaiterais qu'à l'ouverture du fichier toutes les feuilles soient au meme zoom (80%).

J'ai essayé cette macro :

Private Sub Workbook_Open()
Dim i As Byte
For i = 1 To Sheets.Count
With Sheets(i)
ActiveWindow.Zoom = 80
End With
Next
End Sub

mais elle ne marche pas pour toutes les feuilles !

Merci par avance à vous pour toute proposition.

Bon début de semaine.

Pricer
 
Re : Uniformiser le zoom

Salut pricer, le Forum

il faut mettre le code dans le Module ThisWorkbook

à l'activation de n'importe quelle feuille, le Zoom sera à 80%

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim i As Byte
For i = 1 To Sheets.Count
With Sheets(i)
ActiveWindow.Zoom = 80
End With
Next
End Sub
Bonne Journée
 
Re : Uniformiser le zoom

Bonjour pricer, Dull 🙂

Hum, dans l'aide VBA sur la propriété Zoom :

Cette fonction n'affecte que la feuille active dans la fenêtre. Pour appliquer cette propriété à d'autres feuilles, vous devez d'abord les activer.

Donc dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
Dim F As Object, s As Object
Set F = ActiveSheet 'mémorise la feuille
Application.ScreenUpdating = False
For Each s In Sheets
  s.Activate
  ActiveWindow.Zoom = 80
Next
F.Activate 'restitution
End Sub

Cela suppose bien sûr qu'il n'y ait pas de macros Worksheet_Activate ou Workbook_SheetActivate.

Sinon les neutraliser par :

Code:
Application.EnableEvents = False 'en début de macro

Application.EnableEvents = True 'en fin de macro

A+
 
Re : Uniformiser le zoom

Bonjour Job 75, le Forum,

Ton code marche très bien merci beaucoup.
Toutefois, quand, je rajoute ce code :

Private Sub Workbook_Open()
Dim i As Byte
For i = 1 To Sheets.Count
With Sheets(i)
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="TOTO", UserInterfaceOnly:=True
End With
Next
End Sub

Le code ne se compile plus !
J'ai essayé de placer tes deux instructions :

Application.EnableEvents = False 'en début de macro

Application.EnableEvents = True 'en fin de macro

au début et à la fin mais cela ne semble pas marché !

Merci pour toute aide ..

Bonne journée

Pricer
 
Re : Uniformiser le zoom

Bonjour les amis,

je ne sais pas si quelqu'un a pu trouver un petit moment pour examiner mon problème.
en tout cas merci par avance pour toute suggestion.

Amicalement,
Pricer
 
Re : Uniformiser le zoom

Re pricer,

On ne peut pas avoir dans un même fichier 2 macros évènementielles portant le même nom...

Ecrivez donc :

Code:
Private Sub Workbook_Open()
Dim F As Object, s As Object
Set F = ActiveSheet 'mémorise la feuille
Application.ScreenUpdating = False
For Each s In Sheets
  s.EnableAutoFilter = True
  s.EnableOutlining = True
  s.Protect Contents:=True, Password:="TOTO", UserInterfaceOnly:=True
  s.Activate
  ActiveWindow.Zoom = 80
Next
F.Activate 'restitution
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
909
Réponses
3
Affichages
877
Réponses
12
Affichages
883
Réponses
7
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…