Option Explicit
Private Sub CommandButton1_Click()
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim DT As String 'déclare la variable DT (DaTe)
Dim I As Integer 'déclare la variable I (Incrément)
ActiveCell.Select 'enlève le focus au bouton
DEB: 'étiquette
BE = Application.InputBox(Prompt:="Veuillez indiquer la date mm/aaaa", Type:=2, Default:=Format(Now, "mm/yyyy")) 'définit la bôite d'entrée BE
If BE = False Then Exit Sub 'si bouton "Annuler", sort de la procédure
If IsDate(BE) = False Then 'condition si BE n'est pas une date
MsgBox "Date invalide !" 'message
GoTo DEB 'retoure à la boîte d'entrée via l'étiquette "DEB"
End If 'fin de la condition
If Range("A2").Value = "" Then Exit Sub 'si A2 est vide (donc si le tableau est vide)
If MsgBox("Attention vous aller supprimer des données. Voulez vous continuer ?", 1) = vbNo Then Exit Sub 'si "Non"au message, sort de la procédure
TV = Range("A1").CurrentRegion 'définit le tableau des valeurs TV
DT = CStr(Month(BE) & "/" & Year(BE)) 'définit la date DT (convertie la valeur de BE en texte)
For I = UBound(TV, 1) To 2 Step -1 'boucle inversée sur toute les lignes du tableau des valeurs TV (de la derniere à la seconde)
If CStr(Month(TV(I, 1)) & "/" & Year(TV(I, 1))) = DT Then Rows(I).Delete 'si les dates (converties en texte) concordent la ligne est effacée
Next I 'prochaine ligne de la boucle
End Sub