Bonjour,

Désolé de vous embêter avec un problème si simple mais je ne comprend pas ou est mon erreur,

Je cherche à :
- copier des lignes triés,
- les insérer à un autre endroit.

Ça marche avec la copie mais pas avec l'insert ....

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Explicit
Public FEE As Worksheet
'---------------------------------------------------------------------
Sub main()
 
Set FEE = ThisWorkbook.Worksheets(1)
 
Call Copiteur(FEE, "D0003", 6)
 
End Sub
'---------------------------------------------------------------------
Sub Copiteur(WKS As Worksheet, CodeACopier As Variant, ColloneATrier As Integer, Optional LigneDeDebut As Integer = 3)
 
'Je Rentre en mémoire la dernière ligne du tableau
Dim DerniereLigne As Integer
DerniereLigne = WKS.Cells(Rows.Count, 1).End(xlUp).Row
 
'Je filtre sur la feuille voulu, le code voulu dans la collone voulue
WKS.Cells.AutoFilter Field:=ColloneATrier, Criteria1:=CodeACopier
 
'Je copie les ligne encore visibles (mais pas les deux premieres ou il y a des textes d'entete
WKS.Rows(LigneDeDebut & ":" & WKS.Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy
 
'Je colle les ligne copiées en fin de tableau
WKS.Rows(DerniereLigne + 1 & ":" & DerniereLigne + 1).PasteSpecial xlPasteAll ' <--- Ca ça marche
 
'J'insert les lignes copiées juste avant la dernière
WKS.Rows(DerniereLigne & ":" & DerniereLigne).Insert xlShiftDown  ' <--- Ca ça marche pas
 
'je désactive le filtre
WKS.Cells.AutoFilter
 
End Sub