Bloquer la valeur du zoom par VBA

Résolu
stann29
Messages postés
18
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
- 2 mars 2009 à 21:46
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
- 3 mars 2009 à 22:45
bonjour,

je cherche simplement le code pour qu'à l'ouverture d'un fichier excel, la valeur du zoom soit bloquer et ne puisse être modifié par l'utilisateur.
Ex: le bloquer à 52%.

merci d'avance à tous

stann

7 réponses

bigfish_le vrai
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
12
3 mars 2009 à 11:36
Salut,

Une petite remarque pour commencer : Tu n'es pas dans le bon theme !... Pour Excel et plus generalement le VBA c'est ici :

--->  Thèmes / Visual Basic 6 / Langages dérivés / VBA /

Non non !!! ne reposte pas ailleurs on continu malgré tout avec celui-ci !

il n'y pas d'evenement qui permet de detecter le changement de zoom. la seul chose que tu peux faire c'est d'interdire l'utilisation des commandes Zoom de la collection de commande affichage.
Pour cela il faut detecter le clic sur c'est commandes. pour pouvoir detecter le clic il faut avoir accés a l'evenement clic sur ces commandes. Le probleme est que cette evenement n'est pas disponible
en direct sur excel. Le seul moyen de l'obtenir c'est de creer une classe commandebarbouton et d'utiliser les evenement Office.

Si tu veux quand meme essayer vas voir cette source http://www.vbfrance.com/codes/ASTUCE-AMELIORER-SECURITE-ACCES-DONNEES-CODE-FICHIER-EXCEL_48448.aspx
Tu y trouveras toute la methode meme si les commandes ne sont pas les meme.

Sinon explique nous pourquoi tu voudrais interdire l'utilisation du zoom. Peut etre que l'on pourra trouver une autre solution.

A+
0
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
3 mars 2009 à 16:50
Bonjour,

Une demie-solution, c'est d'utiliser l'événement SelectionChange qui se déclenche à chaque changement de la cellule, donc très souvent... avec :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveWindow.Zoom = 52
End Sub

et voir mettre aussi cette action dans l'ouverture du fichier...

mais, je pense que ton idée est mauvaise. Vouloir bloquer la façon dont utilisateur aime voir son interface va très vite le "gonfler"... sauf si c'est le but recherché. Je ne conseille pas ce genre d'intervention. Imagine si on change d'écran ? Imagine que l'utilisateur a des problèmes occulaires ? etc...

Amicalement,
Us.
0
stann29
Messages postés
18
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
20 octobre 2013

3 mars 2009 à 18:19
Merci je vais essayé, mais il s'agit d'un programme utilisé en réseau (en lecture), (planning), il a été construit pour un visuel correct sur un écran 15p, car la plupart des utilisateurs sont en 15p, par contre la personne qui la main sur le programme (accueil) travail en 19p, suivant la personne faisant l'accueil, il arrive que celle-ci modifie le zoom, malgré que le visuel est correct, du coup le visuel et les différents liens sont décalés en 15p.
Ou alors faudrais créer une macro, pour que l'utilisateur choisisse sont zoom avant l'ouverture du programme, style la personne en 15p clique sur un bouton, et ceux en 19p un autre.Cà je sais pas faire !

Merci pour vos aides !

stann
0
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
3 mars 2009 à 19:31
bou... ne cherches pas... laisses tomber. C'est un conseil. Les utilisateurs feront comme ils veulent, un point c'est tout. Tu t'embêtes pour rien, et un jour cela te seras reproché... et demande toi plutôt pourquoi, certaines personnes jouent avec le zoom... à mon avis, c'est pour tout voir sur l'écran...

Amicalement,
Us.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stann29
Messages postés
18
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
20 octobre 2013

3 mars 2009 à 20:01
bah en fait, c'est un impératif,  car plusieurs boutons sont programmés pour accéder à tel ou tel endroit du planning ( c'est un planning très complet !) et revenir à un autre etc...

Mais j'ai trouvé la solution, en créant un userform à l'ouverture, et chacun clique sur un bouton en fonction de la taille de son écran (15-17-19)
Cela marche très bien, sauf que j'arrive pas l'appliquer à toutes les feuilles du classeurs !! il me manque un ti code
0
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
3 mars 2009 à 22:36
surement déjà un peu mieux pour l'utilisateur...
mais les boutons en questions, s'ils étaient mis sur une userform également ? plus bessoin de programmer de zoom, probablement... non ?

Sinon, il y est possible d'appliquer le zoom à toutes les feuilles assez simplement...

Amicalement,
Us.
0
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
3 mars 2009 à 22:45
exemple de code à mettre dans un module :

Sub es()
Dim Feuille As Worksheet
For Each Feuille In ActiveWorkbook.Worksheets
Feuille.Select
ActiveWindow.Zoom = 52
Next
End Sub

Amicalement,
Us.
0