Salut,
Si j'ai bien compris au lieu d'insérer une ligne tu veux le mettre en dernier par exemple pour te mettre sur la voie en évitant tout ces select
Modifies ta procédure Filtre
Sub Filtre()
With [A1]
.Range("A1:I26").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Offset(31, 9).Range("A1:A2"), CopyToRange:= _
.Offset(33, 9).Range("A1
1"), Unique:=False
End With
End Sub
et pour la proc EDF à tester c'est fait à la va vite sans test
Sub EDF()
Dim Plage As Range
filtre 'on lance la proc filtre
set Plage = Range("J35:L35") 'on définit la variable Plage
with workbooks("Grand livre04.xls")
with .sheets("EDF")
.[B65536].End(xlUp)(2).Resize(1, Plage.columns.count) = Plage.Value
end with
end with
with .Sheets("Banque")
.Range("B65536").end(xlup)(2).resize(Plage.rows.count, Plage.columns.count) = Plage.value
.[E65536].end(xlup)(2)=.[D65536].end(xlup)(1).value
.[D65536].end(xlup)(1).clearcontents
end with
A+++