Office 365 Code VBA pour cacher différentes colonnes dans différentes feuilles lors de la fermeture du classeur

MarcoPolo1462

XLDnaute Nouveau
Bonjour,
Je suis novice et je peine à réaliser un code VBA pour l'opération suivante:

lors de la fermeture du classeur, cacher plusieurs colonnes dans différentes feuilles

Par exemple: les colonnes k,l,m,n pour les sheet1 et sheet2 et les colonnes b,c,d pour les sheet 3 et 4

Merci d'avance pour votre aide précieuse, c'est pour faciliter la vie de mes élèves
 

Robert

XLDnaute Barbatruc
Bonjour MarcoPolo, bonjour le forum,

Essaie avec ce code à placer dans le composant ThisWorkbook :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'a la fermeture du classeur
Dim O As Worksheet 'déclare la variable O (Onglet)

For Each O In Worksheets 'boucle sur tous les onglet O du classeur
    Select Case O.Index 'agit en fonction de l'index (la position) de l'onglet
        Case 1, 2 'cas 1 et 2
            O.Columns("K:N").Hidden = True 'masque les colonne K à N
        Case 3, 4 'cas 3 et 4
            O.Columns("B:D").Hidden = True 'masque les colonne B à D
    End Select 'fin de l'action en fonction de l'index de l'onglet
Next O 'prochain onglet de la boucle
ThisWorkbook.Save 'enregistre le classeur
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Une autre syntaxe possible
VB:
Sub MasquerColonnes()
'Par exemple: les colonnes k,l,m,n pour les sheet1
'et sheet2 et les colonnes b,c,d pour les sheet 3 et 4
Dim T, ws As Worksheet, x&
T = Array(Array(1, "K:N"), Array(2, "K:N"), Array(3, "B:D"), Array(4, "B:D"))
For Each ws In Worksheets
x = Mid(ws.CodeName, 6, 9 ^ 9) - 1
ws.Columns(T(x)(1)).Hidden = True
Next
End Sub
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas