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
 

ledzepfred

XLDnaute Impliqué
Re : utilisation filtre

bonsoir à tous,

j'ai pas trop suivi votre fil mais quelque chose m'a interpellé

francis tu utilises une macro nommé auto_closed, si cette macro doit se déclencher à la fermeture du fichier il faut écrire :

Code:
Sub auto_close()

on ne met pas de d à la fin de close

quand on suit la logique des macros auto_open et auto_close, tu déprotèges ton feuillet à la fermeture et tu le reprotèges à l'ouverture, l'inverse je comprendrais (et encore) mais là je vois pas l'interet

a+
 
Dernière édition:

ledzepfred

XLDnaute Impliqué
Re : utilisation filtre

Re...

autre chose :
Code:
ActiveSheet.Unprotect
    Password = "zaza"

si tu souhaites déprotéger un feuillet protégé par le mot de passe zaza
il faut écrire
Code:
ActiveSheet.Unprotect Password := "zaza"

mettre l'argument password à la ligne équivaut à créer une variable à laquelle tu affectes la valeur "zaza"

même chose avec
Code:
ActiveSheet.Unprotect
    MdP = "zaza"

a+
 
Dernière édition:

francis79

XLDnaute Junior
Re : utilisation filtre

re,
pour jeanpierre

utilisation tableau
1) je selectionne les personnes (a,b,c,d) par un "x" minuscule dans colonne A (field=1)
2) je clique sur le bouton afficher personnel présent
apparait seulement les personnes avec un "x"
3) je met une date dans colonne arrivé, une date dans colonne départ et nombre de jour s'affiche dans colonne I
en fonction des dates d'arrivé et de départ ,le nombre de jours varie en I
et c'est dans cette colonne que je veut le tri pour une disposition en décroissant
et que tout le reste soit protègé donc non modifiable sans un mot de passe

francis

je reprend contact demain
 

ledzepfred

XLDnaute Impliqué
Re : utilisation filtre

re....

si j'ai tout compris :
Code:
Sub RAZ_présent()
' raz_CO Macro
' Macro enregistrée le 26/01/2009 par adc_ouvrard_f

    ActiveSheet.Unprotect Password:="zaza"
    Range("A11:A70").ClearContents
    ActiveSheet.Protect Password:="zaza"
    End Sub
Sub afficher_personnel_présents()
' afficher_présents
' Macro enregistrée le 26/01/2009 par adc_ouvrard_f
    ActiveSheet.Unprotect Password:="zaza"
    If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
    Range("A11:K" & [B65536].End(xlUp).Row).Sort Key1:=Range("I11"), Order1:=xlAscending
    Selection.AutoFilter Field:=9, Criteria1:=">0"
    ActiveSheet.Protect Password:="zaza"
End Sub
Sub afficher_tout_le_personnel()
' afficher_tous Macro
' Macro enregistrée le 26/01/2009 par adc_ouvrard_f
    ActiveSheet.Unprotect Password:="zaza"
    If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
    ActiveSheet.Protect Password:="zaza"
End Sub
Sub RAZ_jours()
' RAZ_jours Macro
' Macro enregistrée le 26/01/2009 par adc_ouvrard_f
    ActiveSheet.Unprotect Password:="zaza"
    Range("A11:A70,E11:E70,G11:G70").ClearContents
    ActiveWindow.LargeScroll Down:=-9
    ActiveWindow.ScrollRow = 11
    Range("A10").Select
    ActiveSheet.Protect Password:="zaza"
End Sub
si tous les jours de présence sont à zéro, on peut faire en sorte que rien ne se passe, il suffit d'jouter une condition
Code:
Sub afficher_personnel_présents()
' afficher_présents
' Macro enregistrée le 26/01/2009 par adc_ouvrard_f
if [I71] > 0 Then
    ActiveSheet.Unprotect Password:="zaza"
    If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
    Range("A11:K" & [B65536].End(xlUp).Row).Sort Key1:=Range("I11"), Order1:=xlAscending
    Selection.AutoFilter Field:=9, Criteria1:=">0"
    ActiveSheet.Protect Password:="zaza
End if
End Sub

bonne nuit à tous
 

Excel-lent

XLDnaute Barbatruc
Re : utilisation filtre

Bonsoir le fil,

Tu semblais tenir au filtre automatique, ne pouvoir modifier que celui sur la colonne I, c'est chose faite ci-joint.

J'ai fais mieux, pour éviter de tenter l'utilisateur, je n'affiche QUE le filtre automatique de la colonne I.

Bonne soirée

PS. : tu vois, avec une pièce jointe, les réponses sont tout de suite de meilleures qualitées et plus nombreuses!!! Maintenant, le plus dur pour toi, consistera à toutes les essayer et faire un mix de chacune pour avoir LE fichier de tes rêves ;)
 

Pièces jointes

  • Filtre automatique sur mesure.zip
    16.4 KB · Affichages: 21

francis79

XLDnaute Junior
Re : utilisation filtre

re,
bonjour,

pour excel-lent en particulier

je viens d'essayer ton fichier,mais je n'arrive à le faire fonctionner comme je veut
je voudrais utiliser le tri pour la colonne I seulement après avoir cliquer sur le bouton personnel présent.
avec ton code, lorsque je clique sur le bouton afficher filtre toute la liste apparait
comment modifier le code pour utiliser le tri croissant décroissant seulement dans la position personnel présent, c'est à dire qu'avec la liste avec un "x"

francis
 

B3lga

XLDnaute Junior
Re : utilisation filtre

même genre de question par rapport au filtre automatique.
je voudrais copier une plage de cellules déjà nommée après un tri par filtre automatique. voilà le code

sub depart_ment ()
sheets("Feuil1").select
range("base_ville").select
selection.autofilter field:=2, criteria1:=département (ici département est le résultat d'une première listbox)
range("villes").copy (c'est la plage à copier après le tri)
range("J1").paste

qu'est ce qui cloche?
la macro bug et quand je vais voir sur la feuille le filtre est bien réalisé comme je le souhaite.
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : utilisation filtre

Bonsoir Francis79,

francis79 à dit:
je voudrais utiliser le tri pour la colonne I seulement après avoir cliquer sur le bouton personnel présent.

Pb solutionné ci-joint!

J'ai laissé les macros "Afficher le personnel présent" - "Afficher tout le personnel" ainsi que "RAZ jours" et "RAZ présent".

Et j'ai mis ta demande complète (comme indiqué sur les boutons) dans les macros liés aux boutons :
-> "Afficher Filtre Nb Jrs pour le personnel présent"
-> "Enlever Filtre Nb Jrs pour le personnel présent"

J'ai volontairement scindé les deux, pour plus de clarté. Ainsi si tu veux comprendre, modifié, mixer, ... les codes des différentes macro, cela sera plus simple pour toi.

Bonne soirée
 

Pièces jointes

  • Filtre sur mesure.zip
    16.8 KB · Affichages: 20

Excel-lent

XLDnaute Barbatruc
Re : utilisation filtre

Bonsoir B3lga,

B3lga à dit:
je voudrais copier une plage de cellules déjà nommée après un tri par filtre automatique

C'est vrai, je le reconnais, ta demande parle du même sujet que celui de Francis79, mais pour plus de clarté, il serait plus pratique que tu ouvre une nouvelle discussion!

Rendez-vous là bas.

Bonne soirée
 

francis79

XLDnaute Junior
Re : utilisation filtre

re,
pour excel-lent
merci de ton aide
le filtre fonctionne correctement, mais la fonction tri croissant décroissant
ne fonctionne pas
ce que je souhaite avec cette fonction c'est de remettre la liste des personnes présentes en fonction du nombre de jours de présence dans l'ordre décroissant

merci,francis
 

Discussions similaires

Statistiques des forums

Discussions
312 518
Messages
2 089 248
Membres
104 079
dernier inscrit
RodLemar