Aide pour un module en Vba Excel

  • Initiateur de la discussion Initiateur de la discussion Hpotter
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

Hpotter

Guest
Bonjour à tous,

J'ai ce code que je répete 52 fois dans mon application car je l'insère dans 52 feuilles de calcul.

Comment pourrais-je l'écrire afin de le mettre dans un module pour qu'à chaque fois que j'ouvre une feuille nommée "S1 à S52" celui-ci s'applique.

Code:
Private Sub Worksheet_Activate()
    ActiveWindow.Zoom = 75
End Sub

Merci par avance pour votre aide
 
Re : Aide pour un module en Vba Excel

Bonjour Jean-Marcel,

Merci pour ton aide, mais j'ai peur que le code que tu m'as donné concerne toutes les feuilles, hors, j'aimerai que cela ne concerne que les feuilles nommées "S1, S2,etc jusqu'à S52".

Merci toutefois d'avoir apporté ton attention sur mon problème
 
Re : Aide pour un module en Vba Excel

Bonjour le fil, bonjour le forum,

peut-être comme ça :
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim num As Integer 'déclare la variable num (NUMéro)
 
If Left(Sh.Name, 1) = "S" Then 'condition : si le nom de l'onglet commence pas "S"
On Error Resume Next 'gestion des erreurs (si un onglet a un nom ne comportant pas de numéro cela provoque une erreur)
num = CInt(Mid(Sh.Name, 2)) 'définit le numéro
If Err <> 0 Then Exit Sub 'si il y a erreur, sort de la procédure
On Error GoTo 0 'fin de la gestion des erreurs
Select Case num 'agit en fonction du numéro
    Case 1 To 52 'de 1 à 52
        ActiveWindow.Zoom = 75 'zoom 75%
End Select 'fin de l'actikon en fonction du numéro
End If 'fin de la condition
End Sub
 
Dernière édition:
Re : Aide pour un module en Vba Excel

Bonjour le fil, Hpotter, Jean-Marcel, Pierrot93, Robert

Une autre version (pour la route):
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim ch As String
    Dim I As Integer
 
    ch = ActiveSheet.Name
 
    If Left(ch, 1) = "S" And IsNumeric(Right(ch, Len(ch) - 1)) Then
        I = CInt(Right(ch, Len(ch) - 1))
        If I > 0 And I <= 52 Then ActiveWindow.Zoom = 75
    End If
 
End Sub
A plus 🙂
 
Dernière édition:
Re : Aide pour un module en Vba Excel

Bonjour le fil, soenda, Jean-Marcel, Pierrot93, Robert

Merci beaucoup à tous, je suis gâté en ce Dimanche.
J'ai testé le code de soenda et comme il fonctionne plutôt bien alors je le garde.

Merci à tous ceux qui ont participé à cette discussion.

Bonne fin de Dimanche
Amicalement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
32
Affichages
2 K
Réponses
7
Affichages
987
Retour