Microsoft 365 Déplacer la ligne visible après le filtre

iliess

XLDnaute Occasionnel
Bonjour
SVP je souhaite déplacer la ligne visible après un filtre vers la fin du tableau Excel en vba
voici mon code
VB:
Sub Garder()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = Worksheets("Rapp")
LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
FirstOfRowFilter = Range("TblData").Resize(Range("TblData").Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Row
Range("A" & FirstOfRowFilter & ":J" & FirstOfRowFilter).Cut
Range("A" & LastRow + 1 & ":J" & LastRow + 1).Insert Shift:=xlDown
End Sub

après l'exécution du code voici le message d'erreur dans la dernière ligne du code

1701089949913.png

svp qu'elle est la solution de ce problème
merci
 

Pièces jointes

  • Déplacer la ligne visible après le filtre.xlsm
    17.8 KB · Affichages: 2

Phil69970

XLDnaute Barbatruc
Bonjour @iliess
Edit Bonjour @ChTi160

Essaye ceci

VB:
Sub Garder()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = Worksheets("Feuil1")
LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
FirstOfRowFilter = Range("TblData").Resize(Range("TblData").Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Row
Range("A" & FirstOfRowFilter & ":F" & FirstOfRowFilter).Cut

Range("TblData").AutoFilter ' Suppression des filtres

Range("A" & LastRow + 1 & ":F" & LastRow + 1).Insert Shift:=xlDown
'Run "filtre"
End Sub

Cela supprime le filtre

Mais que veux tu faire ?
 

iliess

XLDnaute Occasionnel
Bonjour @ChTi160
Bonjour @Phil69970

merci pour vos réponses

j'ai ajouter cette ligne dans le code et ca marche très bien
VB:
Range("A" & FirstOfRowFilter & ":F" & FirstOfRowFilter).Cut Destination:=Range("A" & LastRow + 1 & ":F" & LastRow + 1)
Rows(FirstOfRowFilter & ":" & FirstOfRowFilter).Delete Shift:=xlUp

voici le nouveau code

Code:
Sub Garder()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = Worksheets("Feuil1")
LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
FirstOfRowFilter = Range("TblData").Resize(Range("TblData").Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Row
Range("A" & FirstOfRowFilter & ":F" & FirstOfRowFilter).Cut Destination:=Range("A" & LastRow + 1 & ":F" & LastRow + 1)
Rows(FirstOfRowFilter & ":" & FirstOfRowFilter).Delete Shift:=xlUp
Range("TblData").AutoFilter
End Sub
 

Discussions similaires

Réponses
3
Affichages
405

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 677
dernier inscrit
Justine11