Zoom évolutif sur certains onglets

Bonjour à tous,

Je cherche à réaliser un zoom évolutif sur quelques onglets

J'explique, j'ai un fichier avec 20 onglets, et j'aimerais que les onglets de 2 à 19 (par exemple) soit au démarrage à 85%, mais si l'utilisateur veut lui les mettre à 100%, alors les onglets de 2 à 19 se mettront automatiquement à 100%.

Merci d'avance les excelites !!!!!

Bonsoir I3 PtitBiscuit, le forum,

j'aimerais que les onglets de 2 à 19 (par exemple) soit au démarrage à 85%

A tester....

Private Sub Workbook_Open()
  Dim i As Integer
    For i = 2 To 19
      Sheets(i).Activate
      ActiveWindow.Zoom = 85
    Next i
End Sub

Cordialement,

Merci pour ton retour, mais tu ne répons pas totalement à ma question

Si l'utilisateur veut mettre à 70%, les autres onglets se modifie aussi à 70%.

Merci

Re,

Merci pour ton retour, mais tu ne répons pas totalement à ma question

C'est que je n'ai pas encore trouvé comment faire , mais patience, une âme charitable devrait se manifester sous peu,

Bonne soirée,

Bonjour toutes et tous

coucou Xorsankukai

je ne sais pas si cela est correct à l'ouverture d'un classeur comme ceci en prenant le code de Xorsunkukai

@ tester avec demande d'une boîte à message

Private Sub Workbook_Open()
On Error Goto plouf
  If MsgBox("Etes-vous certain de vouloir zoomer à 85% les onglets 2 à 19 ?", vbYesNo, "Demande de confirmation") = vbYes Then
  Dim i As Integer
    For i = 2 To 19
      Sheets(i).Activate
      ActiveWindow.Zoom = 85
    Next i
        MsgBox "effectué !"
Else
  Dim j As Integer
    For j = 2 To 19
      Sheets(j).Activate
      ActiveWindow.Zoom = 100
    Next j
        MsgBox "Annulé!"
plouf:
Exit Sub
    End If

End Sub

@ tester avec prudence

crdlt,

André

Bonsoir Andre13,

Tu ne réponds pas à la deuxième question qui est:

Si je modifie le zoom sur une feuille , j'applique le même zoom aux autres feuilles (de 2 à 19)

Toutes mes tentatives ont échouées, j'en reste là pour ce soir,

Amitiés.

Merci pour vos retour les Excelites,

Mais je ne suis pas preneur du code de Andre13 car je le trouve trop contraignant. Mais merci de ton temps passé à essayé de m'aider.

Merci à toi aussi xorsankukai pour ton aide !!!

message supprimé

Bonjour à tous,

un changement de zoom n'est pas détectable par excel.

Il faudra au moins sélectionner une autre cellule après le changement de zoom pour qu'il soit pris en compte.

Les index des feuilles étant leur position qui peut varier, j'ai préférer travailler avec les noms.

A mettre dans ThisWorkbook :

Option Explicit

Const feuille As String = ",Feuil1,Feuil2,Feuil3,"
Dim zoom As Long

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If InStr(feuille, "," & Sh.Name & ",") > 0 And zoom > 0 Then ActiveWindow.zoom = zoom
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If InStr(feuille, "," & Sh.Name & ",") > 0 Then zoom = ActiveWindow.zoom
End Sub

eric

Parfait eriiic, merci à tous de m'avoir aidé dans ce grand moment de solitude (pour ma part)

J'ai complété mon code au-dessus.

J'avais prévu de tenir compte qu'un nom de feuille pouvait être inclus dans un autre, mais collé l'avant-dernière version.

eric

Bonjour I3 PtitBiscuit, eriiic,

@I3 PtitBiscuit : pourai-tu partager ta solution, malgré les conseils d'ériiic, je n'y parviens pas, et je suis frustré de rester sur un échec,

J'ai du louper quelque chose....si je change le zoom sur la feuille 2 par exemple, il reste inchangé sur les autres feuilles,

Merci,

Cordialement,

Quand tu changes le zoom de la feuille 2 par exemple, il faut ensuite cliquer sur n'importe quelle cellule de cette feuille avant d'aller à la feuille 3.

Une fois cette manipulation faite, quand tu iras à la feuille 3, elle se mettra automatiquement au zoom demandé.

@+

Re,

Nickel merci pour ce retour.

Merci également à ériiic pour cette astuce,

Bonne continuation,

Cordialement,

Ok, on complique un peu alors

Plus besoin de cliquer ailleurs :

Option Explicit

Const listFeuil As String = ",Feuil1,Feuil2,Feuil3,"
Dim shAv As Worksheet, noEvents As Boolean

Private Sub Workbook_Open()
    Dim sh As Worksheet, tmp, i As Long
    Set sh = ActiveSheet
    tmp = Split(listFeuil, ",")
    Application.ScreenUpdating = False
    noEvents = True
    For i = 1 To UBound(tmp) - 1
        Sheets(tmp(i)).Select
        ActiveWindow.zoom = 85
    Next i
    Set shAv = Sheets(tmp(1))
    sh.Select
    noEvents = False
End Sub

Private Sub Workbook_SheetActivate(ByVal sh As Object)
    Dim zoom As Long
    If noEvents Then Exit Sub
    Application.ScreenUpdating = False
    If InStr(listFeuil, "," & sh.Name & ",") > 0 Then
        noEvents = True
        shAv.Select
        zoom = ActiveWindow.zoom
        sh.Select
        ActiveWindow.zoom = zoom
        Set shAv = sh
        noEvents = False
    End If
End Sub

Re,

Ok, on complique un peu alors

Plus besoin de cliquer ailleurs :

Que dire....sinon que c'est parfait !

Un grand merci ériiic,

Amitiés.

Désolé, mais moi ça ne fonctionne pas, j'ai un problème avec

shAv.Select

J'ai un message qui m'indique que la variable objet ou variable de bloc with est non définie

Parce que tu testes sans avoir lancé Workbook_Open je pense.

Soit tu le lances, soit tu fermes le fichier et tu l'ouvres ce qui sera la marche normale.

Il ne faut plus vous quitter vous deux. Quand l'un y arrive, l'autre pas, et vice-versa

Bonjour,

Désolé de répondre aussi tard, mais ça fonctionne parfaitement.

J'ai fais une mauvaise manip !!!

Merci les gens !!!!!!!!

Rechercher des sujets similaires à "zoom evolutif certains onglets"