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.