Sub Supprimer_intervalle()
Dim DateDepuis As Long ' colonne contenant date est considérée ici comme long car calculs plus fiables
Dim DateJusquà As Long ' même si colonne date est bel et bien au format date
Dim LigneDepuis As Long
Dim LigneJusquà As Long
'--- Rechercher la date mini et la date maxi présentes dans la feuille "Origine"
With Sheets("Origine").UsedRange
    DateDepuis = WorksheetFunction.Min(.Columns(1))    ' colonne 1 contient la date
    DateJusquà = WorksheetFunction.Max(.Columns(1))
End With
MsgBox "La date la plus ancienne est le " & CDate(DateDepuis) & " et la date la plus récente est le " & CDate(DateJusquà)
' Cdate() pour transformer le chiffre en date
'--- Déterminer les lignes correspondant à l'intervalle vu plus haut
With Sheets("Destination").UsedRange
    .Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlYes   ' on trie par date car les les lignes doivent être en ordre croissant pour fonction Match
    
    LigneDepuis = WorksheetFunction.Match(DateDepuis - 1, .Columns(1), 1) + 1
    LigneJusquà = WorksheetFunction.Match(DateJusquà, Columns(1), 1)
    
' Match fonctionne comme suit :
' a) Si le terme cherché n'existe pas, alors Excel prend la valeur immédiatement suivante
' b) Si le terme cherché existe plusieurs fois, Excel retient la dernière occurrence
' donc
' LigneJusquà : rien de particulier, avec Match critère 1, si le terme recherché apparaît plusieurs fois, c'est le ' dernier qui est retenu
' LigneDepuis : on se positionne sur le terme recherché inférieur (en ayant écrit DateDepuis - 1) et on ajoute 1 pour se mettre finalement sur le bon élément
     
    
    If LigneDepuis <= LigneJusquà Then
        MsgBox "Le bloc à supprimer va de la ligne n° " & LigneDepuis & " à la ligne n° " & LigneJusquà
        .Range(.Rows(LigneDepuis), .Rows(LigneJusquà)).Delete
    Else
        MsgBox "L'intervalle présent dans la feuille Origine allant du " & CDate(DateDepuis) & " au " & CDate(DateJusquà) & " n'existe pas dans la feuille Destination"
                
                
    End If
    
    
End With
End Sub