Masquer des colonnes dans plusieurs feuilles excel
Résolu/Fermé
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
-
Modifié par amiralS le 8/01/2017 à 14:15
amiralS - 9 janv. 2017 à 22:05
amiralS - 9 janv. 2017 à 22:05
A voir également:
- Masquer des colonnes dans plusieurs feuilles excel
- Formule moyenne excel plusieurs colonnes - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Déplacer une colonne excel - Guide
- Liste déroulante excel - Guide
- Formule somme excel colonne - Guide
1 réponse
Utilisateur anonyme
Modifié par albkan le 8/01/2017 à 15:55
Modifié par albkan le 8/01/2017 à 15:55
Bonjour amiralS,
Je te propose ce code VBA :
Tu pourras voir que cette macro fonctionne pour toutes les feuilles
du classeur (y compris si tu en ajoutes d'autres par la suite).
C'est la même macro qui masque / affiche successivement les
2 colonnes H et K, une fois sur deux, pour chaque feuille.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)
Je te propose ce code VBA :
Option Explicit Sub Essai() Dim FX As Worksheet: Application.ScreenUpdating = False For Each FX In Worksheets FX.Range("H1, K1").EntireColumn.Hidden = Not FX.Columns("H").Hidden Next FX End Sub
Tu pourras voir que cette macro fonctionne pour toutes les feuilles
du classeur (y compris si tu en ajoutes d'autres par la suite).
C'est la même macro qui masque / affiche successivement les
2 colonnes H et K, une fois sur deux, pour chaque feuille.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)
Modifié par amiralS le 8/01/2017 à 18:33
Je viens d'essayer mais malheureusement ça coince dans mon cas sur cette ligne
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FX.Range("H1, K1").EntireColumn.Hidden = Not FX.Columns("H").Hidden
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Ce qui marche pour les 4 colonnes de h à k et les trois feuilles c'est ce code. C'est long c'est lourd et ne fonctionnera pas si j'ajoute des feuilles. Pour Afficher je dois écrire une autre macro en remplaçant true par False
'Masquer les colonnes H:K de Plusieurs feuilles
Sub masque()
Sheets("Sem_36 A").Select
Columns("H:K").Select
Selection.EntireColumn.Hidden = True
Sheets("Sem_37 B").Select
Columns("H:K").Select
Selection.EntireColumn.Hidden = True
Sheets("Sem_38 A").Select
Columns("H:K").Select
Selection.EntireColumn.Hidden = True
End Sub
Cordialement amiralS
En essayant avec un classeur vierge juste des feuilles vides nommées par défaut Feuil1 Feuil2 Feuil3 ... et ta macro, ça fonctionne très bien
8 janv. 2017 à 18:40
Ma macro est indépendante du nom des feuilles, et agit sur toutes
les feuilles du classeur. Mon code précédent était pour 2 colonnes
seulement : H et K. Pour 4 colonnes H à K, voici un autre code :
Les 2 macros fonctionnent sur un classeur vide ou non,
mais il faudra faire une adaptation si tu as des feuilles
masquées.
À te lire pour savoir si ton problème est réglé ou non.
Si oui, merci d'aller en haut de page pour cliquer sur
le lien « Marquer comme résolu ». Cordialement. :)
8 janv. 2017 à 19:50
J'avais déjà remplacé ("H1, K1") par ("H:K") pour masquer les 4 colonnes, ça fonctionne très bien. Comme ça marche très bien sur un classeur vide et pas avec celui que j'avais commencé, pour ne pas perdre de temps je copie les feuilles une par une dans ce classeur vide je vérifie chaque fois que ta macro fonctionne toujours puis je copie une par par une les macros que j'ai déjà créées avec vérification de leur exécution à chaque fois.
Je viens de trouver, si des cellules sont protégées dans les feuilles la macro ne fonctionne pas, en ôtant la protection c'est bon.
Quelles modifications faut-il faire? j'aurai des feuilles cachées pour les semaines de vacances.
Est-il possible que cette macro s'exécute sur toutes les feuilles sauf 1 ou plusieurs. Par exemple que cette macro s'exécute à partir de la feuille 3 jusqu'à la feuille x?
Cordialement
8 janv. 2017 à 23:58
As-tu remarqué que j'avais changé le début ? Au lieu de :
FX.Range("H1, K1").EntireColumn.Hidden c'est :
FX.Columns("H:K").Hidden
Si la protection de tes feuilles pose un problème :
Si en plus tu as des feuilles masquées (cachées), alors pour les éviter :
Des feuilles 3 à 10, toujours en évitant les feuilles masquées :
A+ pour avoir ton avis. :)
9 janv. 2017 à 22:05
Un grand merci pour ton aide. Je viens de me remettre sur mon projet et j'ai essayé toutes tes propositions avec succès.
J'ai retenu la dernière qui me permet d'appliquer la macro sur un choix de feuilles déterminé.
Donc grande satisfaction et grand merci pour ce problème résolu.
A+