utilisation filtre

francis79

XLDnaute Junior
bonsoir,
j'utilise un tableau avec macros et bou boutons de commande macros sur le tableau
le tableau est en mode protection,donc impossibilité d'utilisr les filtres.
pour utiliser filtres,il y a deux solutions

-soit enlever protection feuille
-soit passer Contents:=False, dans la macro "afficher_personnel_présents"

mais le problème,c'est que toutes les colonnes sont déprotègées

je voudrais utiliser le filtre seulement sur la colonne I
alors que dans la macro je suis en AutoFilter Field:=1 soit colonne A
toute en étant en protection sur les autres colonnes

ci-dessous les macros

merçi de votre aide
francis

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

End Sub
Sub auto_closed()
ActiveSheet.Unprotect

End Sub

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

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


Sub afficher_personnel_présents()
'
' 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_tout_le_personnel()
'
' 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


Sub RAZ_jours()
'
' RAZ_jours 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.Protect
    Selection.ClearContents
    ActiveWindow.LargeScroll Down:=-9
    ActiveWindow.ScrollRow = 11
    Range("A10").Select
End Sub
 

Excel-lent

XLDnaute Barbatruc
Re : utilisation filtre

Re,

Par la méthode "normal" ("données"/"filtrer"/"filtre automatique"), tu peux mettre un filtre automatique sur UNE SEULE colonne si tu le souhaites!

Suffit au préalable de sélectionner LA(es) colonnes souhaitez uniquement!

Voici ce que donne l'enregistreur de macro :
Code:
    Columns("I[B][COLOR="Blue"]:I[/COLOR][/B]")[COLOR="Blue"][B].Select
    Selection[/B][/COLOR].AutoFilter

La même chose en simplifié :
Code:
    Columns("I").AutoFilter

Bonne soirée
 

francis79

XLDnaute Junior
Re : utilisation filtre

re,
pour excel-lent,

j'ai essayer ton code que j'ai inclus dans le code "afficher personnel présent
tout en ayant sélectionner au préalable la colonne I
ça ne fonctionne pas
toutes les données sur la feuille sont effacées
alors que faire

francis
 

Excel-lent

XLDnaute Barbatruc
Re : utilisation filtre

Bonsoir Francis, le fil,

francis79 à dit:
ton code que j'ai inclus dans le code "afficher personnel présent tout en ayant sélectionner au préalable la colonne I
ça ne fonctionne pas

Pourtant avant de poster le code je l'ai testé, ça fonctionnait très bien!

francis79 à dit:
toutes les données sur la feuille sont effacées

A aucun endroit, mon code ne comporte de commande effaçant des données!

Le code ne fait QUE rajouter un filtre automatique mais à aucun moment il ne filtre, donc il n'efface pas ET de plus il ne cache rien, car n'effectue pas de filtre!

francis79 à dit:
alors que faire
Peux-tu mettre un extrait de ton fichier dépersonnalisé ici?

Edition : Bonsoir skoobi, pas vu.
 

francis79

XLDnaute Junior
Re : utilisation filtre

re,
pour skoobi,
j'avais essayé déja ta solution, mais ça marche pas
dans mon tableau je sélectonne les personnes présente dans la colonne A (1)
par le bouton "afficher personnel présent,
a partir de là, dans la colonne I (9), j'indique le Nbr de jours present
et c'est dans cette colonne et seulement dans cette colonne que je veut ultiliser le tri croissant décroissant
alors comment faire merci
francis
 

Excel-lent

XLDnaute Barbatruc
Re : utilisation filtre

Re,

Sans fichier difficile de t'aider plus!

En bonus, en attendant, voici déjà un premier nettoyage de ton code (fait exactement la même chose que le tiens mais plus court) :

Code:
Public MdP As String
Sub auto_open()

ActiveSheet.Protect

End Sub
'-------------------------------------------
Sub auto_closed()

ActiveSheet.Unprotect

End Sub
'-------------------------------------------
Sub RAZ_présent()
' raz_CO Macro

 Range("A11:A70").ClearContents
 
End Sub
'-------------------------------------------
Sub afficher_personnel_présents()

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

End Sub
'-------------------------------------------
Sub afficher_tout_le_personnel()
' afficher_tous Macro

    ActiveSheet.Unprotect
    MdP = "zaza"    
    Selection.AutoFilter Field:=1, Criteria1:="x", Operator:=xlAnd
    ActiveSheet.Protect
    ActiveSheet.Unprotect
    password = "zaza"
    ActiveSheet.ShowAllData
    ActiveSheet.Protect

End Sub
'-------------------------------------------
Sub RAZ_jours()
' RAZ_jours Macro

    Range("A11:A70").ClearContents
    Range("E11:E70").ClearContents
    Range("G11:G70").ClearContents

    ActiveSheet.Protect

End Sub

On vois déjà un peu mieux ce qui cloche!

Dans l'attente de ton fichier.

Edition : pas vu que tu l'avais mis entre temps! J'y jette un coup d'oeil

Bonne fin de soirée
 

francis79

XLDnaute Junior
Re : utilisation filtre

re, fichier joint
utilisation tableau
1) selection personnel par un "x" colonne A
2)bouton personnel présent
3)date de présence jour arrivé et jour de départ
le nombre de jours s'affiche colonne I
et c'est dans cette colonne que je veut le tri
et que tout le reste soit protègé donc non modifiable sans un mot de passe

francis
 

Discussions similaires

Statistiques des forums

Discussions
312 316
Messages
2 087 178
Membres
103 491
dernier inscrit
bilg1