Bloquer la valeur du zoom par VBA [Résolu]

Messages postés
18
Date d'inscription
mercredi 26 novembre 2008
Dernière intervention
20 octobre 2013
- - Dernière réponse : us_30
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
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
Afficher la suite 

Votre réponse

7 réponses

Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
0
Merci
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+
Commenter la réponse de bigfish_le vrai
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
0
Merci
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.
Commenter la réponse de us_30
Messages postés
18
Date d'inscription
mercredi 26 novembre 2008
Dernière intervention
20 octobre 2013
0
Merci
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
Commenter la réponse de stann29
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
0
Merci
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.
Commenter la réponse de us_30
Messages postés
18
Date d'inscription
mercredi 26 novembre 2008
Dernière intervention
20 octobre 2013
0
Merci
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
Commenter la réponse de stann29
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
0
Merci
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.
Commenter la réponse de us_30
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
0
Merci
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.
Commenter la réponse de us_30

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.