utiliser filtre avec macros

francis79

XLDnaute Junior
bonjour,
j'utilise des macros que j'ai retranscrit dans une autre application, mais je ne peut pas utiliser le fitre (tri croissant décroissant) sans ôter la protection pour les macros:
-afficher_co
-afficher_tous
-raz_co

je commande toutes ces macros par des boutons

-je voudrais donc utiliser le filtre pour ces macros sans ôter la protection à chaque fois que je clique sur l'un des boutons

2ème question, comment changer le nom de la macro en Sub----
3ème qestion, comment regrouper deux modules en 1 seul

comme je ne connais rien dans le langage, votre aide seras la bienvenu

ci-dessous le code module 1

francis
Code:
Public MdP As String
Sub auto_open()
Range("a10").Activate
ActiveSheet.Unprotect

End Sub
Sub auto_closed()
ActiveSheet.Unprotect

End Sub

Sub raz_co()
'
' raz_CO Macro
' Macro enregistrée le 26/01/2009
'

'
    Range("A11:A70").Select
    Selection.ClearContents
    Range("a11").Select
    End Sub


Sub afficher_la_co()
'
' Macro enregistrée le 26/01/2009
'

'
    ActiveSheet.Unprotect
    MdP = "zaza"
    
    Selection.AutoFilter Field:=1, Criteria1:="x", Operator:=xlAnd
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub afficher_tous()
'
' afficher_tous Macro
' Macro enregistrée le 26/01/2009
'

    ActiveSheet.Unprotect
    MdP = "zaza"
    
    Selection.AutoFilter Field:=1, Criteria1:="x", Operator:=xlAnd
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

    ActiveSheet.Unprotect
    password = "zaza"
    ActiveSheet.ShowAllData
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
module 2
Code:
Sub remiseazerocommande()
'
' remiseazerocommande Macro
' Macro enregistrée le 26/01/2009
'
    Range("A11:A70").Select
    Selection.ClearContents
    Range("a11").Select
'
    Range("E11:E70").Select
    Selection.ClearContents
    Range("a11").Select
'
    Range("G11:G70").Select
    ActiveSheet.Unprotect
    Selection.ClearContents
    ActiveWindow.LargeScroll Down:=-9
    ActiveWindow.ScrollRow = 11
    Range("A10").Select
End Sub
 

skoobi

XLDnaute Barbatruc
Re : utiliser filtre avec macros

Bonjour francis,

je voudrais donc utiliser le filtre pour ces macros sans ôter la protection à chaque fois que je clique sur l'un des boutons
Tu veux exécuter ces macros sur un fichier qui a des feuilles non protégées c'est ça?
2ème question, comment changer le nom de la macro en Sub----
Euh tous les codes sont déja des Sub, que veux-tu dire?
3ème qestion, comment regrouper deux modules en 1 seul
Tu as justes à couper/coller la procédure se trouvant dans le module 2 vers le module 1.
 

Pierrot93

XLDnaute Barbatruc
Re : utiliser filtre avec macros

Bonjour Francis, Skoobi

si j'ai bien compris, pas sûr... pour ta 1ère question, pour travailler par vba sur feuille protégée, il faut que la protection soit faite par le code en utilisant l'argument "userinterfaceonly", code ci dessous à placer dans le module "thisworkbook" :

Code:
Private Sub Workbook_Open()
Sheets("Feuil1").Protect "toto", userinterfaceonly:=True
End Sub

bon après midi
@+
 

francis79

XLDnaute Junior
Re : utiliser filtre avec macros

re,

pour la 1ère question
la feuille est non protègé lorsque clique seulement sur le bouton remise à zéro
voir module 2
mais lorsque je clique sur le bouton afficher_co la feuille passe en protection et là , je ne peut pas me servir du filtre

pour le 2ème question
je voulais savoir comment renommer le Sub
 

francis79

XLDnaute Junior
Re : utiliser filtre avec macros

re,
j'ai essayé le code . toujours le même problème
à l'ouverture du classeur, j'enlève la protection par mot de passe.j'ai accès sans protection,mais dès que je clique sur 1 des 4 boutons la feuille passe en protection
le code complet se trouve en début de message
les 4 boutons sont:
sub raz_co
sub afficher_la_co
sub afficher_tous
sub remiseazerocommande

ce que je veut,c'est pouvoir utliser le filtre avec tri sur "afficher_la_co" en permanence
merci

francis
 

skoobi

XLDnaute Barbatruc
Re : utiliser filtre avec macros

Re,
Pierrot:),

francis, si tu as bien ajouté le code de Pierrot (dans Thisworkbook et pas dans un module) tu dois enlever toutes les protections déprotection de tes macros car ce n'est plus nécessaire.
Purquoi? Car
Code:
userinterfaceonly:=True
autorise les modifications par macro mais pas en "utilisation classique", pratique dans ce cas.
Bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 239
Membres
103 497
dernier inscrit
JP9231