Cellule variable après application de filtre avec Macro

Bonjour,

Je souhaite faire un macro qui applique des filtres sur des colonnes et qui applique des formules sur les cellules qu en résulte :

Option Explicit

Dim derln

Sub AppliquerLesFormules()

Sheets("PORTEFEUILLE").Select

Columns("AO:AO").Select

Selection.NumberFormat = "General"

ActiveSheet.Range("$A$1:$AX$1038").AutoFilter Field:=38, Criteria1:= _

"Attente d'approbation"

ActiveSheet.Range("$A$1:$AX$1038").AutoFilter Field:=41, Criteria1:="="

ActiveSheet.Range("$A$1:$AX$1038").AutoFilter Field:=18, Criteria1:= _

"STELSIA"

derln = Range("M" & Rows.Count).End(xlUp).Row

Afin d'appliquer la la formule ci-dessous uniquement sur le nombre de ligne concernée par le filtre ci-dessus

Range("AO2" & derln).FormulaR1C1 = "A approuver par MICHOU Lydie"

ActiveSheet.Range("$A$1:$AX$1038").AutoFilter Field:=18

ActiveSheet.Range("$A$1:$M$3000").AutoFilter Field:=18, Criteria1:=Array( _

"CLVSOVAC-001", "CLV-002", "TOTAL-007"), Operator:= _

xlFilterValues

derln = Range("M" & Rows.Count).End(xlUp).Row

Même chose que l'explication ci-dessus

Range("AO2" & derln).FormulaR1C1 = "A approuver par BOUTIN Jean François"

ActiveSheet.Range("$A$1:$AX$1038").AutoFilter Field:=18

ActiveSheet.Range("$A$1:$AX$1038").AutoFilter Field:=10, Criteria1:="="

derln = Range("M" & Rows.Count).End(xlUp).Row

Même chose que l'explication ci-dessus

Range("AO2:AO" & derln).FormulaR1C1 = "=VLOOKUP(C[9],'Approbateurs standard'!R1C1:R14C2,2,FALSE)"

ActiveSheet.ShowAllData

End Sub

Mon problème vient de là Range("AO2:AO" & derln) ou Range("AO2" & derln) car d'un jour sur l'autre la première cellule après application des filtres n'est pas forcément AO2 cela peut-être AO5 ...

Merci pour votre aide.

Bonjour,

Bonjour,

Je vais voir ce que je peux faire mais le fichier est trop volumineux même en supprimant des lignes, je vais devoir supprimer des colonnes du coup elle ne correspondrons pas a ce qu'il y a sur la Macro. Je laisse les colonnes concernée donc.

Rappel : Ce que j'aimerais c'est tout simplement que la macro applique une recherche vertical en la recopiant vers le bas a partir de la 1ère cellule située sous l'en-tête de colonne qui n'est pas forcement la cellule A2.

Ok j'ai simplifié les choses :

Colonne A je filtre sur les pièces en attente d'approbation

Colonne B j’applique la formule uniquement sur le nombre de ligne résultant du filtre ni plus ni moins :

Option Explicit

Dim derln

Sub AppliquerLesFormules()

ActiveSheet.Range("$A$1:$D$8").AutoFilter Field:=1, Criteria1:= _

"Attente d'approbation"

derln = Range("D" & Rows.Count).End(xlUp).Row

Range("B2:B" & derln).FormulaR1C1 = "=IF(R2C8>RC[2],""ECHUE"",""NON ECHUE"")"

End Sub

Problème : Range("B2:B" & derln) ne convient pas car la cellule B2 pourrais très bien contenir une pièce en exception sur laquelle je ne veux pas appliquer la formule. En d'autres termes il faut que la formule s'applique après la mise en place du filtre sur la cellule situé en dessous de l'entête de colonne (qui n'est pas forcément B2) jusqu'à la fin du tableau.

Merci d'avance pour votre aide.

Rechercher des sujets similaires à "variable application filtre macro"