Formule à appliquer sur une colonne

Résolu
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   -  
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Grace au forum j'ai un code pour effectuer un filtre élaboré qui fonctionne bien. J'ai voulu, à la suite de ce code, rajouter un code qui me permette d'effectuer un calcul dans la colonne K à partir des données du filtre (qui sont copier de la colonne B à J). Pb ce code ne fonctionne pas ...
La formule est écrite dans la cellule K2 et doit s'appliquer de la cellule K7 jusqu'à la dernière ligne du filtre.
Sub FiltreAvance()

Dim DL As Integer
Dim DerLig As Integer
DL = Sheets(1).Cells(Application.Rows.Count, 4).End(xlUp).Row
DerLig = Sheets(2).Cells(Application.Rows.Count, 2).End(xlUp).Row
With Sheets(1)
.Select
.Range(Cells(4, 1), Cells(DL, 9)).Select
End With
Selection.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets(2).[B1:B2], CopyToRange:=Sheets(2).[B6], Unique:=False
With Sheets(2)
.Range("K7" & DerLig).FormulaR1C1 = Range("K2").FormulaR1C1
End With
End Sub


Quelqu'un peut m'aider ?

Merci d'avance pour votre aide.
A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
il manque la lettre de la colonne de fin "K7:K" & DerLig
.Range("K7" & DerLig).FormulaR1C1 = Range("K2").FormulaR1C1

De plus vous recherchez la dernière ligne du tableau (DerLig) de la feuille 2 construit à partir du filtre élaboré, avant même d'avoir construit le tableau, cette ligne doit se trouver après la construction du tableau.

Sub FiltreAvance()
    Dim DL As Integer
    Dim DerLig As Integer
    DL = Sheets(1).Cells(Application.Rows.Count, 4).End(xlUp).Row
    With Sheets(1)
        .Select
        .Range(Cells(4, 1), Cells(DL, 9)).Select
    End With
    Selection.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets(2).[B1:B2], CopyToRange:=Sheets(2).[B6], Unique:=False
    DerLig = Sheets(2).Cells(Application.Rows.Count, 2).End(xlUp).Row
    Sheets(2).Select
    Range("K7:K" & DerLig).FormulaR1C1 = Range("K2").FormulaR1C1
End Sub

Cdlt
0
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour ces précisions Frenchie83 !
0