filtre et pas filtre

  • Initiateur de la discussion lesuisse
  • Date de début
L

lesuisse

Guest
Bonjour,

Je souhaite filtrer des données dans un fichier qu'une macro ouvre automatiquement.
Mais il se peut que dans la première ligne, le filtre soit activé ou non...
Et suivant cela, il faut que la macro installe le filtre ou le laisse...

Quelqu'un aurait-il une idée ?

Merci

Le faux Suisse


Rows("1:1").Select
If Selection.AutoFilter = False Then
Selection.AutoFilter
Else:
Selection.AutoFilter Field:=12, Criteria1:="M-1"
 
J

Jean-Marie

Guest
Re lesuisse

Je me sui trompé de propriété (je suis novice en VBA, mais je me soigne)

Public Sub toto()
If Worksheets("Feuil1").AutoFilterMode = False Then
MsgBox "les filtres ne sont pas actif"
Else
MsgBox "les filtres sont actif"
End If
End Sub

La propriété enableautofilter, indique sur l'utilisateur peut utiliser les filtres si la feuille est protégée.


@+Jean-Marie
 
D

DestyNov@

Guest
Bonjour lesuisse et jm :) et à tous

je me permets de remonter un peu le post parce que j'ai un petit pb. en fait le retour de la méthode AutoFilterMode nous indique si les filtres sont en place ou non. moi j'aurais aimé savoir si une sélection par un filtre est en cours ou non. y'a-t-il une méthode qui permet de le savoir?

++ EnJoY It =))))
 
J

Jean-Marie

Guest
Bonjour Desty

Utilise la propriété FilterMode

Cette propriété a la valeur True si la feuille de calcul est en mode filtre. Type de données Boolean en lecture seule.
Remarque
Cette propriété a la valeur True si la feuille de calcul contient une liste filtrée qui contient des lignes masquées.


@+Jean-Marie
 
D

DestyNov@

Guest
Merci JM :)
ça marche impecc! bon tu vas peut-être me trouver exigeant, mais j'aimerais maintenant savoir sur quelle colonne, avec quel critère, (enfin tout quoi!) pour pouvoir remettre le filtre après l'action que j'ai à faire... bon je ne pense pas que cela soit possible mais sait-on jamais...

en tt k merci bcp!
 
J

Jean-Marie

Guest
Re... Desty

Voilà c'est une idéee

Public Sub InfoFiltre()
Dim vTab
Dim I As Byte
Dim vCritère As String

With ActiveSheet
vTab = .Range("A1:A" & Range("IV1").End(xlToLeft).Column)
If .AutoFilterMode = False Then
MsgBox "les filtres ne sont pas actif"
Else
If .FilterMode = False Then
MsgBox "Les filtres sont affichés, aucune sélection est en cours"
Else
For I = 1 To UBound(vTab, 1)
With .AutoFilter.Filters(I)
If .On Then vCritère = "le champ " & vTab(I, 1) & " est filtré," _
& " les données doivent être " & .Criteria1 & _
IIf(.Criteria2 = "", "", IIf(.Operator = 1, " et ", " ou ") & .Criteria2 & vbLf)
End With
Next I
MsgBox vCritère
End If
End If
End With
End Sub

@+Jean-Marie
 

Discussions similaires

Réponses
40
Affichages
1 K

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz