Condition If Then

Bernard-Louis

XLDnaute Occasionnel
Bonjour le forum,

Dans cette macro, je souhaite mettre une condition sur "Selection autofilter"
C'est a dire que si il y a deja un Filtre automatique ( ne rien faire) et si l' y en a pas (en mettre un)

Merci pour l'aide et bonne journée.

Code:
Sub Classeur_Excel()

    Rows("1:1").Select
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.AutoFilter
    Range("A2").Select
    ActiveWindow.FreezePanes = True
    Range("A1:IV65536").Select
    With Selection.Font
        '.Name = "Arial"
        .Size = 8
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    
    Columns("A:IV").EntireColumn.AutoFit
  
    ActiveWindow.DisplayGridlines = False
    Range("A2").Select
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Condition If Then

Bonjour Bernard Louis

essaye peut être avec le code ci dessous :

Code:
Dim f As AutoFilter
Set f = Sheets("Feuil1").AutoFilter
If f Is Nothing Then Sheets("Feuil1").Range("A1").AutoFilter

bonne journée.
@+

Edition : remplacé "selection" par un range
 
Dernière édition:

Bernard-Louis

XLDnaute Occasionnel
Re : Condition If Then

Bonjour Pierrot,
Je ne peux pas utiliser cette solution car la macro est placée sur "Perso.xls" et elle sert pour tout les fichiers excel.
Je ne peux pas definir la feuille1, car selon les fichiers, celle ci peut avoir plusieurs noms différents.
Merci encore
 

Bernard-Louis

XLDnaute Occasionnel
Re : Condition If Then

Bonjour le forum,
Si Pierrot passe par là, j'ai un probleme qui est survenu ce matin, car la dodif bloque sur la derniere ligne.

Code:
'Place un filtre automatique si il n'y en a pas
Dim f As AutoFilter
Set f = ActiveSheet.AutoFilter
If f Is Nothing Then ActiveSheet.AutoFilter

Merci pour l'aide
 

Pierrot93

XLDnaute Barbatruc
Re : Condition If Then

Bonjour Bernard Louis

modifies comme suit :

Code:
Dim f As AutoFilter
Set f = ActiveSheet.AutoFilter
If f Is Nothing Then ActiveSheet.Range("A1").AutoFilter

Si sur la ligne 1, il y a bien les titres de colonnes et en dessous des données.

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 440
Messages
2 088 452
Membres
103 854
dernier inscrit
linzei