Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…