Microsoft 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
Repose en paix
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
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 939
Membres
101 844
dernier inscrit
pktla