Masquer colonne tableau référence structurée [macro Excel]

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 !

Alex Bou

XLDnaute Nouveau
Bonjour à tous,

Je cherche à masquer une (plusieurs) colonne(s) d'un tableau avec un bouton.

Une fonction comme
VB:
Range("T:X").EntireColumn.Hidden = True
fonctionne bien sûr. Mais si j'ajoute une colonne, rien ne va plus, il faut retoucher au code.

Je voudrais donc pouvoir utiliser les références structurées du tableau comme par exemple pour 1 seule colonne :

VB:
Range("Eleves[Compétence1]").EntireColumn.Hidden = True

Mais ça ne fonctionne pas. J'ai pas mal cherché mais je ne trouve pas cet exemple sur internet. Et pour plusieurs colonnes contigües comment faire ?

Merci d'avance pour vos avis !
 
Salut ALEX BOU,
En mettant entre crochet les colonnes que tu souhaites cacher comme : Range("Tab_Client[[Adresse1]:[Ville]]").Columns.Hidden = True
1574429533074.png

@+ Lolote83
 
Merci, ça ne marche pas, voici la ligne exacte que j'utilise pour ce tableau:
VB:
Range("VI[[Mener une recherche et une veille d'information]:[Protéger les données personnelles et la vie privée]]").Columns.Hidden = True

Est-ce que cela vien des noms trop longs avec accents et espaces ?

Je souhaite masquer de N jusque T inclus

Capture.PNG
 
Re bonjour,
Je ne sais pas répondre à ta question, mais sur les test que j'ai fait sur mon fichier, cela fonctionnait.
Essaye avec un tableau plus petit et des noms plus courts, mais j'y crois pas trop.
Sinon, tu as toujours la possibilité de masquer les colonnes à la mano, ou de faire un données->Grouper et tu auras tes colonnes masquées avec un petit + pour afficher/masquer
Clic sur le + et cela affiche les colonnes
1574434554595.png

1574434577561.png

@+ Lolote83
 
Bonjour le fil, Alex Bou, Lolote83

Fonctionne chez moi
(1ere exécution Masque , 2ième exécution => Démasque)
VB:
Sub MasqueDemasque_NT()
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects(1) 'ici adapter selon besoin
tbl.DataBodyRange(, 14).Resize(, 7).EntireColumn.Hidden = Not tbl.DataBodyRange(, 14).Resize(, 7).EntireColumn.Hidden
End Sub
Je te laisse faire les adaptation au niveau du tableau (nom)
 
Re

Celle-ci aussi (et elle prend un peu moins de place)
VB:
Sub MasqueDemasque_NT_v2()
Dim tbl As ListObject, rng As Range
Set tbl = ActiveSheet.ListObjects(1): Set rng = tbl.DataBodyRange(, 14).Resize(, 7)
rng.EntireColumn.Hidden = Not rng.EntireColumn.Hidden
End Sub
 
- 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

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
170
Retour