Macro activation Filtre automatique

  • Initiateur de la discussion Initiateur de la discussion Florian95
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Florian95

XLDnaute Nouveau
Bonjour à tous,


mon problème ne doit pas être bien épineux mais il suffit à me coincer dans mon cheminement.
Voici les faits : j'ai réalisé une macro qui retraite une base de données et jusque là tout va bien (enlever les lignes vides + combler les colonnes vide).

Mon problème se situe au niveau des filtres automatiques : en effet, mon souhait serait que la macro active le filtre automatique sur le table. Pb, lorsque le filtre automatique est déjà activé, la macro déactive le filtre auto !

je recherche donc une solution pour toujours avoir le filtre automatique et ce quelque soit la position initiale.

merci d'avances !

voici maintenant mon code :

Private Sub Treatfile_Click()

Dim NombreVal As Integer, Lig As Integer
With Sheets("Gravité")
For Lig = 5000 To 4 Step -1
NombreVal = .Application.WorksheetFunction.CountA(Sheets("Gravité").Rows(Lig))
If NombreVal = 0 Then
.Rows(Lig).EntireRow.Delete
End If
Next
End With

With Sheets("Gravité")
x = Range("g65536").End(xlUp).Row
For y = 2 To x
If Range("f" & y) = "" Then Range("f" & y) = Range("f" & y - 1)
Next
End With

Range("A4:K4").Select
If ActiveSheet.FilterMode = False Then
Selection.AutoFilter
End If



End Sub
 
Re : Macro activation Filtre automatique

Bonjour Florian, bonjour le forum,

Peut-être comme ça :
Code:
Private Sub Treatfile_Click()Dim NombreVal As Integer, Lig As Integer


With Sheets("Gravité")
    For Lig = 5000 To 4 Step -1
        NombreVal = Application.WorksheetFunction.CountA(.Rows(Lig))
        If NombreVal = 0 Then
            .Rows(Lig).EntireRow.Delete
        End If
    Next
    x = .Range("G65536").End(xlUp).Row
    For y = 2 To x
        If .Range("F" & y) = "" Then .Range("F" & y) = .Range("F" & y - 1)
    Next
End With
If ActiveSheet.AutoFilterMode = False Then Range("A4").AutoFilter
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
461
Réponses
5
Affichages
182
Réponses
4
Affichages
177
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
7
Affichages
163
Réponses
2
Affichages
461
Retour