Sub macro()
Dim WS As Worksheet
Dim Feuille As Worksheet
Dim chk
Dim nl
Dim dervalcola As Range, plage As Range, c As Range
'nom de la feuille ou sont les données
Set Feuille = Sheets("Feuil3")
With Feuille
'dernière cellule colonne A
Set dervalcola = .[A65536].End(xlUp)
'plage de cellules censés contenir des dates
Set plage = .Range("A8:A" & dervalcola.Row)
'comptage du nombre de lignes de la plage
nl = plage.Rows.Count
'vérification du format des cellules (Est-ce des dates ?)
For Each c In .Range("A8:A" & dervalcola.Row)
If IsDate(c) Then chk = chk + 1
Next
'test conditions réuinies pour lancer MSgBox
If Not IsEmpty(dervalcola) And dervalcola <> [A5] And (chk - nl) = 0 Then
If MsgBox("Copie/Effacement en E1", vbYesNo, "Copie") = 6 Then
Randomize
'création d'une nouvelle feuille
Set WS = Sheets.Add
'attribution nom aléatoire
WS.Name = "Nouvelle feuille " _
& Int(CDbl(Time) * 10000)
'recopie E1 vers A1 de la nouvelle feuille
.Range("E1").Copy WS.Range("A1")
'effacement E1
.Range("E1").ClearContents
Else
Exit Sub
End If
End If
End With
End Sub