Masquer Afficher colonnes par vba [Résolu/Fermé]

Signaler
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
-
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
-
Bonjour,
De nouveau je fais appel à votre science en remerciant toutes personnes qui m'apporteront les codes nécessaires.
Je souhaiterai masquer - démasquer les colonnes :
Dans un premier code :
C:E - J:M - O:Q - S:U et X:AF de façon à ne pas pouvoir les afficher par :
Format, Colonne, Afficher ni par sélection avant après des colonnes masquées.
Dans un second temps :
Pouvoir les ré-afficher

6 réponses

Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
13
Décidément tu ne te repose jamais... ?
Mais je suis heureux de voir ta fidélité à me répondre et je t'en remercie de tout mon cœur.
Sauf erreur de m part, j'aurai une dernière question dans quelques jours.
Je te souhaite une bonne nuit.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60906 internautes nous ont dit merci ce mois-ci

Bonjour
au plus simple
Sub Cache()
' cache Colonne
Cells.EntireColumn.Hidden = False
Range("C:E,J:M,O:Q,S:U,X:AF").EntireColumn.Hidden = True
End Sub

Sub DeCache()
' Decache Colonne
Cells.EntireColumn.Hidden = False
End Sub

A+
Maurice
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60906 internautes nous ont dit merci ce mois-ci

Messages postés
12684
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
21 septembre 2020
2 024
Bonjour

1) Déverrouiller toutes les cellules de la feuille (clic droit sur triangle en haut à droite entre les barres de titres - Format de cellule - Protection - Décocher Verrouillée

2) Protéger la feuille avec un mot de passe, par ex abcd
(Onglet Révision - Protéger la feuille)

3) Ouvrir l'éditeur VBA avec ALT+F11 puis Insertion - Module
Copier et coller les macros suivantes dans la page blanche
Sub Masquer()
ActiveSheet.Unprotect "abcd"
    Columns("C:E").Select
    Selection.EntireColumn.Hidden = True
    Columns("J:M").Select
    Selection.EntireColumn.Hidden = True
    Columns("O:Q").Select
    Selection.EntireColumn.Hidden = True
    Columns("S:U").Select
    Selection.EntireColumn.Hidden = True
    Columns("X:AF").Select
    Selection.EntireColumn.Hidden = True
    ActiveSheet.Protect "abcd"
End Sub
Sub Demasquer()
ActiveSheet.Unprotect "abcd"
    Columns("C:E").Select
    Selection.EntireColumn.Hidden = False
    Columns("J:M").Select
    Selection.EntireColumn.Hidden = False
    Columns("O:Q").Select
    Selection.EntireColumn.Hidden = False
    Columns("S:U").Select
    Selection.EntireColumn.Hidden = False
    Columns("X:AF").Select
    Selection.EntireColumn.Hidden = False
    ActiveSheet.Protect "abcd"
End Sub


Remplacer dans les macros les abcd par le code utilisé pour la protection de la feuille avant de fermer l'éditeur

Les amcros se lancent depuis l'onglet Developpeur - Macros où tu peux dans Options leur affecter le raccourci clavier de ton choix

Cdlmnt
Via
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
13
Bonjour via,
N'y aurait-il pas une astuce pour que le MP n(apparaisse pas en "calir" dans le code ?
En te remerciant.
Messages postés
25300
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
5 481
Bonjour
le plus simple serait de protèger VBA pour que la lecture des macros ne soit pas accessible, non?
_afficher VBA / Outils >/ Propriètés de VBA project / Protection
avec un mot de passe à ne pas oublier !
_n'agit qu'après fermeture et réouverture du fichier
crdlmnt
Bonjour jean300,

Je te propose ce code VBA :


Option Explicit

Sub ColsHideShow()
  ActiveSheet.Unprotect "abcd"
  Range("C:E, J:M, O:Q, S:U, X:AF").Columns.Hidden = Not Columns("C").Hidden
  ActiveSheet.Protect "abcd"
End Sub


⚠  Les lignes #6 et #7 doivent être en une seule ligne.

Lance cette macro pour masquer les colonnes ; puis lance-la
de nouveau pour afficher les mêmes colonnes.

Cordialement
 
Messages postés
374
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
13 janvier 2020
13
Bonjour lucien,
Mes remerciements pour ta soluce dont je prends note.
Au plaisir.