Zoom auto qui s'ajuste à chaque largeur de feuille

Mi_

XLDnaute Occasionnel
Bonjour le forum,

J'ai un classeur avec plusieurs feuilles.

Chaque feuille (sans exception) est limitée en largeur, c'est-à-dire que à partir de la colonne G, H, I ou J (par exemple), toutes les colonnes à droite sont masquées. La largeur des feuilles est variable, la première colonne masquée étant de lettre variable.

Bon. Je veux que chaque feuille soit zoomée en plein écran, n'importe sa largeur.

Il me faut le truc pour détecter la largeur des colonnes visibles.

A présent, j'utilise pour (et dans) chaque feuille

Private Sub Worksheet_Activate()
Range('A1:G1').Select 'la zone maximale visible)
ActiveWindow.Zoom = True
Range('A1').Select
End Sub


Donc je doit ajuster le code (la largeur visible) pour chaque feuille manuellement.

Serait-il possible d'avoir un code pour Zoom automatique pour chaque feuille, n'importe sa largeur visible, dès l'ouverture (à mettre dans ThisWorkbook_Open) ?

Merci pour tout conseil,
Mi_
 

Hervé

XLDnaute Barbatruc
Re:Zoom auto qui s'ajuste à chaque largeur de feui

Bonsoir mi_


Essaye en bouclant sur les colonnes :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim i As Integer

For i = 256 To 1 Step -1
   
If Columns(i).Hidden = False Then
       
Exit For
   
End If
Next i

Range(Cells(1, 1), Cells(1, i)).Select
ActiveWindow.Zoom =
True
Range('a1').Select
End Sub


salut
 
M

Marc du 78

Guest
Re:Zoom auto qui s'ajuste à chaque largeur de feui

Bonsoir Didier mDf, Hervé, Mi_,

Pour moi qui débute Didier accepterais-tu de m'expliquer ton code ?

Car ceci pourrais m'intéresser également
En te remerciant par avance
 

myDearFriend!

XLDnaute Barbatruc
Re:Zoom auto qui s'ajuste à chaque largeur de feui

Bonjour Marc,

Aucun problème, je vais essayer de t'expliquer en détail ces 5 lignes de code....

Le but étant de vouloir appliquer un zoom automatiquement sur la fenêtre en englobant les seules colonnes visibles de la feuille, la manipulation retenue consiste donc à sélectionner une plage représentant ces colonnes visibles sur une seule ligne (c'est suffisant pour un zoom) et d'appliquer ensuite le zoom sur cette sélection.

Tout comme mon ami Hervé, j'ai retenu la procédure évènementielle Workbook_SheetActivate() de l'objet ThisWorkbook car cet évènement se déclenche à l'activation de chaque feuille du classeur (la macro sera donc valable pour toutes les feuilles du dit classeur).

Il convient donc de définir la plage retenue pour cette sélection :
[ol][ul][li]Manuellement, voici comment je procèderais :  
Sélection de la première ligne de la feuille (en cliquant sur l'entête de ligne), puis menu Edition / Atteindre / Cellules..., choisir Cellules visibles seulement, puis OK pour valider.[/li]
[li]Par macro, c'est exactement la même démarche. Tu peux d'ailleurs le vérifier avec l'enregistreur de macro et en refaisant la manipulation précédente.
Tu obtiendras quelque chose comme ça :
      Rows('1:1').Select
      Selection.SpecialCells(xlCellTypeVisible).Select
Que tu peux ensuite simplifier comme ça :
      Rows(1).SpecialCells(xlCellTypeVisible).Select
J'utilise pour ma part la valeur 12 qui est l'équivalent de l'argument xlCellTypeVisible.[/li][/ul][/ol]
ActiveWindow.Zoom = True
Range('A1').Select
Permet ensuite d'ajuster le zoom automatiquement sur la sélection en cours et de sélectionner ensuite la cellule A1.

En espérant avoir pu t'éclairer...
Cordialement,
 
M

Marc du 78

Guest
Re:Zoom auto qui s'ajuste à chaque largeur de feui

Bonsoir Didier mDF

Je viens te remercier pour ta patience et tes explications, c'est pas facile pour le débutant que je suis et je comprends mieux, du moins je le crois, comment Papy arrivait à sortir des trucs extraordinaires.
Aves des professeurs tels que vous je suis à bonne école.

Très bon dimanche à tous et à toi en particulier et encore une fois Merci
Marc
 

Mi_

XLDnaute Occasionnel
Re:Zoom auto qui s'ajuste à chaque largeur de feui

Bonsoir Hervé, Didier mDF, Marc, le forum,

Merci de votre aide, j'ai réussi à adapter le zoom pour tout le classeur (et avec option '100% ou Plein écran' siouplait).

J'ai adapté aussi les codes pour sélectionner des colonnes au lieu de lignes. Ca marche.

Maintenant je voudrais limiter le scroll dans la surface visible. J'ai essayé en vain de trouver la valeur de la dernière cellule visible en bas et à droite.

C'est la formule ActiveSheet.ScrollArea = 'A1:H23' que je voulais utiliser, mais je n'ai pas réussi à trouver (identifier par code) le 'H23' qui est different pour chaque feuille du classeur.

Si vous avez des suggestions .....

C'est clair, là j'abuse. :eek:

Encore merci,
Mi_
 

Mi_

XLDnaute Occasionnel
Re:Zoom auto qui s'ajuste à chaque largeur de feui

Bonsoir Hervé, Didier mDF, Marc, le forum,

Merci de votre aide, j'ai réussi à adapter le zoom pour tout le classeur (et avec option '100% ou Plein écran' siouplait).

J'ai adapté aussi les codes pour sélectionner des colonnes au lieu de lignes. Ca marche.

Maintenant je voudrais limiter le scroll dans la surface visible. J'ai essayé en vain de trouver la valeur de la dernière cellule visible en bas et à droite.

C'est la formule ActiveSheet.ScrollArea = 'A1:H23' que je voulais utiliser, mais je n'ai pas réussi à trouver (identifier par code) le 'H23' qui est different pour chaque feuille du classeur.

Si vous avez des suggestions .....

C'est clair, là j'abuse. :eek:

Encore merci,
Mi_
 

Discussions similaires

Réponses
3
Affichages
587

Statistiques des forums

Discussions
312 236
Messages
2 086 481
Membres
103 232
dernier inscrit
logan035