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