Tri sous excel avec un bouton
odin33
Messages postés
9
Statut
Membre
-
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.
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:
- Tri sous excel avec un bouton
- Comment faire un tri personnalisé sur excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Logiciel tri photo - Guide
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...
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...
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.....
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.....