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 34
| Sub t()
' Déclaration des variables et constante
Const SheetSource As String = "Ratei" ' Nom de la feuille source
Const SheetTarget As String = "cex" ' Nom de la feuille cible
Dim shtSource As Worksheet
Dim shtTarget As Worksheet
Dim oRange As Range ' Plage source
Dim oRangeFiltered As Range ' Plage source filtrée
Dim myDate As Long
' Affectation des variables
With ThisWorkbook
Set shtSource = .Worksheets(SheetSource)
Set shtTarget = .Worksheets(SheetTarget)
End With
myDate = CDate(InputBox("mettere una data"))
Set oRange = shtSource.Range("A1").CurrentRegion
' Début
With oRange
.AutoFilter Field:=16, Criteria1:="<" & myDate
' Définit la plage filtrée avec la ligne des titres
Set oRangeFiltered = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
oRangeFiltered.Copy Destination:=shtTarget.Range("A1") ' Copie des données
' Définit la plage filtrée sans la ligne des titres
Set oRangeFiltered = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
oRangeFiltered.EntireRow.Delete ' Suppression des données
End With
shtSource.ShowAllData
Set oRange = Nothing: Set oRangeFiltered = Nothing: Set shtSource = Nothing: Set shtTarget = Nothing
End Sub |