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

Uniformiser le zoom

pricer

XLDnaute Nouveau
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
 

Dull

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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+
 

pricer

XLDnaute Nouveau
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
 

pricer

XLDnaute Nouveau
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
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…