Masquer Afficher colonnes par vba [Résolu]

jean300 118 Messages postés jeudi 11 août 2016Date d'inscription 9 décembre 2017 Dernière intervention - 1 oct. 2017 à 22:20 - Dernière réponse : jean300 118 Messages postés jeudi 11 août 2016Date d'inscription 9 décembre 2017 Dernière intervention
- 3 oct. 2017 à 15:03
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

Afficher la suite 
118Messages postés jeudi 11 août 2016Date d'inscription 9 décembre 2017 Dernière intervention

7 réponses

Répondre au sujet
jean300 118 Messages postés jeudi 11 août 2016Date d'inscription 9 décembre 2017 Dernière intervention - 1 oct. 2017 à 23:02
+1
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jean300
via55 8786 Messages postés mercredi 16 janvier 2013Date d'inscription 11 décembre 2017 Dernière intervention - 1 oct. 2017 à 22:43
0
Utile
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
Commenter la réponse de via55
jean300 118 Messages postés jeudi 11 août 2016Date d'inscription 9 décembre 2017 Dernière intervention - 2 oct. 2017 à 12:36
0
Utile
1
Bonjour via,
N'y aurait-il pas une astuce pour que le MP n(apparaisse pas en "calir" dans le code ?
En te remerciant.
Vaucluse 20835 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 10 décembre 2017 Dernière intervention - 2 oct. 2017 à 12:50
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
Commenter la réponse de jean300
0
Utile
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
Commenter la réponse de Archer
0
Utile
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
 
Commenter la réponse de lucien
jean300 118 Messages postés jeudi 11 août 2016Date d'inscription 9 décembre 2017 Dernière intervention - 3 oct. 2017 à 15:03
0
Utile
Bonjour lucien,
Mes remerciements pour ta soluce dont je prends note.
Au plaisir.
Commenter la réponse de jean300