Bonjour,
Il faut toujours chercher la solution la plus simple.
Pour détecter un changement de mois il faut stocker la valeur avant quelque part et ensuite comparer la nouvelle valeur avec l'ancienne. Dans ton cas, le mois est déjà stocké en N8, il suffit donc de comparer avec le DTP pour faire ou non une action.
Remplace l'événement DTPicker1_Change par :
Private Sub DTPicker1_Change()
Dim bNewMonth As Boolean
With Sheets("Croix Sécurité")
If Month(DTPicker1.Value) <> .Range("N8") Then bNewMonth = True
.Range("M8") = Split(DTPicker1.Value, "/")(0)
.Range("N8") = Split(DTPicker1.Value, "/")(1)
.Range("O8") = Split(DTPicker1.Value, "/")(2)
If bNewMonth = True Then UserForm2.Show
End With
End Sub
Avant de mettre le nouveau mois dans la cellule N8, on compare le DTP avec le mois de cette cellule N8 et si changement de mois (bNewMonth) on affiche l'UF2 en fin de l'évémement Change.