Formule à appliquer sur une colonne

Résolu/Fermé
ti_mouton Messages postés 143 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020 - 21 juil. 2015 à 09:17
ti_mouton Messages postés 143 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020 - 22 juil. 2015 à 10:44
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 lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
22 juil. 2015 à 04:36
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020
22 juil. 2015 à 10:44
Merci beaucoup pour ces précisions Frenchie83 !
0