Problème de séléction de la dernière colonne + Filtre [VBA]

Bonjour à tous,

Dans le but d'automatiser un fichier, je souhaiterais aller à la dernière colonne non vide et filtrer celle-ci.

J'ai écris un bout de code correspondant au fichier joint :

Sub Macro1()
'
' Macro1 Macro
'

Sheets("Feuil2").Select
Rows("2:2").Select
Selection.AutoFilter
Selection.AutoFilter

'Filtre dernière colonne
der_colonne = Cells(2, Columns.Count).End(xlToLeft).Select
colonne = ActiveCell.Column
ActiveSheet.Range("$A$2:$AI$25930").AutoFilter Field:=colonne, Criteria1:="<0"
'Filtre dernière colonne -1
colonne = ActiveCell.Column - 1
ActiveSheet.Range("$A$2:$AI$25930").AutoFilter Field:=colonne, Criteria1:="<0"

'Filtre dernière colonne -2
colonne = ActiveCell.Column - 2
ActiveSheet.Range("$A$2:$AI$25930").AutoFilter Field:=colonne, Criteria1:="<0"

'Filtre dernière colonne -3
colonne = ActiveCell.Column - 3
ActiveSheet.Range("$A$2:$AI$25930").AutoFilter Field:=colonne, Criteria1:="<0"

End Sub

En lancant le VBA, je voudrais que la macro filtre les 4 dernières colonnes non-vide (M2,N2,O2 et P2). Actuellement, il va à la dernière cellule contenant un filtre.

Je ne peux pas supprimer les colonnes qui suivent avec un filtre car des données vont venir s'y intégrer par la suite.

Pourriez-vous me venir en aide s'il vous plaît ?

Cordialement

13classeur1.xlsm (16.74 Ko)

Bonjour,

Si les valeurs présentes en ligne 2 sont numériques et restent en ordre croissant, ce code conviendra :

    With ActiveSheet.Rows(2)
        colonne = Application.Match(Application.Max(.Value), .Value, 0)
    End With

    With ActiveSheet
        'Filtre dernière colonne
        .Range("$A$2:$AI$25930").AutoFilter Field:=colonne, Criteria1:="<0"

        'Filtre dernière colonne -1
        .Range("$A$2:$AI$25930").AutoFilter Field:=colonne - 1, Criteria1:="<0"

        'Filtre dernière colonne -2
        .Range("$A$2:$AI$25930").AutoFilter Field:=colonne - 2, Criteria1:="<0"

        'Filtre dernière colonne -3
        .Range("$A$2:$AI$25930").AutoFilter Field:=colonne - 3, Criteria1:="<0"
    End With

Bonjour Thev,

Merci à toi pour ton aide et ta réponse rapide, je vais pouvoir avancer sur mon sujet grâce à toi.

Cordialement

Rechercher des sujets similaires à "probleme selection derniere colonne filtre vba"