Bonsoir les amis,
(Désolé pour cette absence de réponse. Surbooké.)
Question (simple?)
Pourquoi VBA ne reconnait-il pas un array comme paramètre de l'objet ListColumns?
Précision préalable:
Les colonnes choisies sont disjointes.
Procédure appelante
Procédure appelée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Sub essai_colonnes() Call visu_col(levisu:=True) End Sub
Ce code est effectif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Public Sub visu_col(levisu As Boolean) 'https://stackoverflow.com/questions/45356240/vba-for-selecting-a-number-of-columns-in-an-excel-table 'https://www.mrexcel.com/board/threads/select-3-of-6-list-columns.568383/ Dim liste_colonnes As Variant, lacol As Variant liste_colonnes = Array("Répertoire 1", "Répertoire 3", "Répertoire 4", "Répertoire 5", "Répertoire 6", "Répertoire 7", "Type de fichier", "Nom du fichier") For Each lacol In liste_colonnes Worksheets("Reporting").ListObjects("T_Liste").ListColumns(lacol).Range.EntireColumn.Hidden = Not levisu Next lacol End Sub
Néanmoins (comme dirait Cyrano), j'aurais souhaité ne pas utiliser de boucle.
Mais cette ligne
génère une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part Worksheets("Reporting").ListObjects("T_Liste").ListColumns(liste_colonnes).Range.EntireColumn.Hidden = Not levisu
(Idem si j'utilise Evaluate).
Sauf erreur, il est possible de paramétrer l'objet Worksheets par un array.9 - L'indice n'appartient pas à la sélection.
Pourquoi pas ListColumns?
Moi qui parle anglais comme une vache italienne, j'ai consulté les 2 espaces figurant dans mon code, MrExcel et stackoverfow (qui peuvent être précieux par ailleurs)
Pour ma part, je trouve la méthode Union un peu lourde
Par avance, merci pour vos éclairantes lumières.
Partager