Formule à appliquer sur une colonne

Résolu
ti_mouton Messages postés 153 Statut Membre -  
ti_mouton Messages postés 153 Statut Membre -
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.

1 réponse

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. ti_mouton Messages postés 153 Statut Membre
       
      Merci beaucoup pour ces précisions Frenchie83 !
      0