Signaler

Afficher et masquer des colonnes avec checkbox [Résolu]

Posez votre question Nai 349Messages postés vendredi 29 avril 2005Date d'inscription 21 septembre 2016 Dernière intervention - Dernière réponse le 22 sept. 2016 à 08:37
Bonsoir la communauté ^^
Je cherche à afficher et masquer des colonnes avec Checkbox.
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
    Sheets("Prévisionnel").Columns("H:V").EntireColumn.Hidden = False
Else
    Sheets("Prévisionnel").Columns("H:V").EntireColumn.Hidden = True
End If
End Sub

Ça ne fonctionne pas :/
Pouvez-vous m'expliquer d'où vient l'erreur (ou proposer un autre moyen de cacher des zones?)
J'ai besoin de masquer/afficher les semaines1, 2, 3 et/ou 4 ^^
http://www.cjoint.com/c/FItsbBnZjJO
Afficher la suite 
Utile
+1
moins plus
Bonjour,

Tu tiens vraiment à protéger ton classeur contre toute intervention non souhaitée des utilisateurs, c'est ton droit.
Tu as bien protégé et donc toi non plus tu ne peux pas modifier ton classeur par macro.
Je pense que tu vas trouver le remède. ;-)
gbinforme 12535Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 29 septembre 2016 Dernière intervention - 21 sept. 2016 à 08:48
Mais non rassure-toi, cela arrive à tout le monde de ne pas voir les évidences si bien que rien ne vaut un beau présentoir pour cacher quelque chose !
Répondre
Nai 349Messages postés vendredi 29 avril 2005Date d'inscription 21 septembre 2016 Dernière intervention - 21 sept. 2016 à 19:04
Une dernière question concernant cette macro : Si je ne souhaite pas masquer une plage mais des colonnes spécifiques (dont les lettres ne changent jamais) :
Private Sub CheckBox5_Click()
ActiveSheet.Unprotect "alsh"
If CheckBox5 = True Then
    Sheets("Prévisionnel").Columns("AB,AF,AJ,AN,AR").EntireColumn.Hidden = False
Else
    Sheets("Prévisionnel").Columns("AB,AF,AJ,AN,AR").EntireColumn.Hidden = True
End If
ActiveSheet.Protect "alsh", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowInsertingColumns:=True, AllowInsertingRows:=True, _
        AllowInsertingHyperlinks:=True
End Sub

ne fonctionne pas.
Peut-on indiquer plusieurs colonnes comme dans l'exemple qui ne fonctionne pas ci-dessus ? Ou alors sommes-nous obligé de mentionner chaque colonne individuellement comme j'ai pu le voir ci et là ?
Merci d'avance !
Répondre
gbinforme 12535Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 29 septembre 2016 Dernière intervention - 21 sept. 2016 à 22:08
Bonsoir,

des colonnes spécifiques (dont les lettres ne changent jamais) : ne fonctionne pas

Cela ne fonctionne pas car ta syntaxe n'est pas correcte pour qualifier une (ou des) colonne(s) si tu utilises l'objet Range cela est prévu dans VBA
    Sheets("Prévisionnel").Range("AB:AB,AF:AF, AJ:AJ, AN:AN, AR:AR").EntireColumn.Hidden = False
Répondre
Nai 349Messages postés vendredi 29 avril 2005Date d'inscription 21 septembre 2016 Dernière intervention - 21 sept. 2016 à 22:50
Magnifique !
Ce serait plus simple de pouvoir qualifier des colonnes par :
("A,B,C")

m'enfin ^^
L'important c'est de trouver ce qui fonctionne.
Quelle est la différence entre Range et Columns ? Range serait une plage ?
Répondre
gbinforme 12535Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 29 septembre 2016 Dernière intervention - 22 sept. 2016 à 08:37
la différence entre Range et Columns est assez ténue car Columns est un Range aussi, mais l'objet Range " peut inclure l'opérateur de plage (le signe deux-points), l'opérateur d'intersection (un espace) ou l'opérateur de liaison (une virgule) (aide VBA) alors que c'est limité dans Columns au signe deux-points.
Répondre
Ajouter un commentaire

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 !