Signaler

Masquer Afficher colonnes par vba [Résolu]

Posez votre question jean300 85Messages postés jeudi 11 août 2016Date d'inscription 10 octobre 2017 Dernière intervention - Dernière réponse le 3 oct. 2017 à 15:03 par jean300
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

Utile
+1
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis
Utile
+0
plus moins
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 20469Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 11 octobre 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
Répondre
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis
Utile
+0
plus moins
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
 
Donnez votre avis
Utile
+0
plus moins
Bonjour lucien,
Mes remerciements pour ta soluce dont je prends note.
Au plaisir.
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !