Tri sous excel avec un bouton

odin33 Messages postés 9 Statut Membre -  
odin33 Messages postés 9 Statut Membre -
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.
Configuration: Windows XP Internet Explorer 7.0

2 réponses

  1. NicoDisso
     
    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
  2. odin33 Messages postés 9 Statut Membre
     
    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