Tri sous excel avec un bouton

Fermé
odin33 Messages postés 8 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 5 juin 2009 - 26 mai 2009 à 12:04
odin33 Messages postés 8 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 5 juin 2009 - 26 mai 2009 à 13:46
Bonjour,

Voilà, j’utilise un fichier Excel ou j'ai créé un bouton qui masque et démasque des colonnes précises.
Le problème que j'ai, est le suivant :

Quand j'active ce bouton, si je veux par la suite utiliser les filtres automatiques, il faut que je déverrouille la protection de la feuille manuellement.
Et cela ne m'arrange pas, car je ne souhaite pas communiquer le mot de passe, car les personnes qui utilisent ce fichier n'y connaissent rien et risque de mettre un sacré bazar.

Je bricole un peu mais je ne suis pas un expert en macro loin de là, donc que faut-il que je rajoute pour pouvoir faire des filtre automatique a cette macro :

Private Sub CommandButton1_Click()

End Sub

Sub masque()
liste = Array("a", "d", "e", "g", "h", "i", "j", "k", "q", "r", "u")
For n = 0 To UBound(liste)
ActiveSheet.Unprotect Password:="odin"
If Columns(liste(n)).Hidden = True Then
Columns(liste(n)).Hidden = False
Else
Columns(liste(n)).Hidden = True
End If
Next n
ActiveSheet.Protect Password:="odin"
End Sub


Merci d’avance si une bonne âme à une solution, car je cherche déjà depuis quelques temps sans résultas.
A voir également:

2 réponses

Bonjour,
Je ne comprends pas trop ton problème...
Pour l'instant tu geres l'affichaeg ou non de tes colonnes dans ta macro, donc si tu veux la lancer en cliquant sur le boton tu as juste à mettre dans le code de ton bouton

Private Sub CommandButton1_Click()
call masque
End Sub

Sub masque()
liste = Array("a", "d", "e", "g", "h", "i", "j", "k", "q", "r", "u")
For n = 0 To UBound(liste)
ActiveSheet.Unprotect Password:="odin"
If Columns(liste(n)).Hidden = True Then
Columns(liste(n)).Hidden = False
Else
Columns(liste(n)).Hidden = True
End If
Next n
ActiveSheet.Protect Password:="odin"
End Sub

si tu connais tes filtres, tu peux enregistrer les macros afin qu'ils se fassent automatiquement en cliquant sur le bouton associé, par exemple...

Private Sub CommandButton_Filtre_01_Click()
call masque
call filtre_01
End Sub

Private Sub CommandButton_Filtre_02_Click()
call masque
call filtre_02
End Sub

Comme cela tu geres les 2 en direct..

Dis moi si la réponse te va ou si je n'ai vraiment pas compris ta question...
0
odin33 Messages postés 8 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 5 juin 2009
26 mai 2009 à 13:46
Merci pour la rapidité de ta réponse NicoDisso,
Mais effectivement je me suis peut être mal exprimé.

Ma macro avec le bouton pour masquer et démasquer des colonnes marches bien. Je lui ai en plus demandé de prendre en compte le verrouillage par mot de passe. Jusque-là pas de problème.

C’est après utilisation du bouton que le problème se pose. Il re-verrouille en fait je pense sans cocher la case "utiliser le filtre automatique" que l'on peut cocher manuellement lorsque l'on verrouille une feuille.
Donc après plus moyen de faire un filtre sans déverrouiller manuellement.


Pour la fonction "de filtre automatique" c'est en fonction de ce que souhaite faire l'utilisateur.

Voilà, j'espère avoir été un peu plus clair

Merci encore.....
0