Hello Loureed,
Merci merci .
Le problème de ce genre de boulot, c'est que ça demande de connaitre avec précisions les conditions d'utilisation, la maquette de rendu du fichier final, afin de bien prendre en compte tout ce qui peut changer l'état de la fenêtre...
Ci-joint une autre version, qui permet de ne faire le test du zoom d'affichage que sur la feuille 1 (j'ai collé un interrupteur dans la cellule A1 de la feuille 1, quand l'user entre dans la feuille 2 ou 3, l'interrupteur s'active et le code de zoom ne s'active pas).
Après pour la remarque de Loureed, sans passer par l'application d'une fastidieuse équation, il y'a bien 1/3 événements qui permettrait de zoomer mécaniquement si l'user modifie manuellement la fenêtre d'application :
Worksheet_Activate si user va sur la feuille, controle zoom
Workbook_SheetActivate si user va sur une feuille, controle zoom
Worksheet_BeforeDoubleClick si user double clic n'importe où ou sur une cellule spécifique alors controle zoom
Sinon je connais 3 bouts de code qui contrôle des tailles de fenêtre d'application ou de sous-fenêtre classeur, après pour un zoom optimale il faudrait passer par l'application d'une équation (mais ce n'est pas vraiment mon truc), sinon en ajoutant l'un de ces codes dans les tests IF de la boucle infinie d'ouverture de classeur, la boucle repérera la modification de la fenêtre.
Voilà 3 bouts de code qui test des largeurs d'écran :
MsgBox Application.Width 'Renvoie ou définit une valeur de type Double qui représente la distance en points entre le bord gauche et le bord droit de la fenêtre d’application.
MsgBox Application.UsableWidth 'Renvoie la largeur maximale, exprimée en points de l’espace pouvant être occupé par une fenêtre dans l’espace de travail de l’application
MsgBox ActiveWindow.Width 'Si la fenêtre est réduite, la propriété Width est en lecture seule et renvoie la largeur de l'icône de la fenêtre
edit: par contre faire tourner en tâche de fond le contrôle de zoom c'est dire adieu à certaines fonctions excel, des choix à faire...