Bonjour à tous,
Je cale sur un point de mon code malgré pas mal de recherches, alors je me lance pour mon premier post :
J'ai une feuille sur laquelle je peux avoir besoin de faire une "remise à zéro", càd supprimer toutes les données renseignées par l'utilisateur, en conservant toutes les mises en forme, les formules etc. Jusque là ok, aucun problème.
Par soucis de lisibilité, j'ai un certain nombre de colonnes que j'ai groupées (via le bouton "grouper" de la section "plan"), mais que l'utilisateur peut choisir d'afficher ou non, s'il en a besoin ou non : AA:AE, AM:AV, BL:BM, BQ, BS, BU, BW et DB.
Lors de la remise à zéro, je veux que ces colonnes soient masquées (comme si on appuyait sur le petit "-" de notre plan, au-dessus des titres de colonnes). J'arrive à le faire avec un ensemble de colonnes contiguës :
Mon problème est que j'aimerais "standardiser" la chose, ou du moins la rendre plus propre, sans avoir à taper 8 fois ce morceau de code pour les 8 ensembles que j'ai nommés plus haut. J'ai essayé de définir une Union de ces colonnes, mais je ne maitrise pas cette commande et du coup ma boucle FOR ne fonctionne pas dans le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 With ActiveSheet.Columns("AA:AE") If Not .Hidden Then .Hidden = True Else: .Hidden = True End If End With
Ce code me renvoie une "Erreur de compilation: Variable requise. Impossible de l'affecter à cette expression"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Set plage = Union(Columns("AA:AE"), Columns("AM:AV"), Columns("BL:BM"), Columns("BQ"), Columns("BS"), Columns("BU"), Columns("BW"), Columns("DB")) For Each Columns In plage If Not .Hidden Then .Hidden = True Else: .Hidden = True End If Next
Quelqu'un aurait-il une piste ?
Merci d'avance !
Moulinois
Partager