Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [E4].Resize(, Columns.Count - 4)) Is Nothing Then Exit Sub
Dim plage As Range, d As Long, n As Byte
Cancel = True
Set plage = Target(2, 2).Resize(2) '2 cellules, l'une sous l'autre
d = Int(Val(Target(1))) 'nombre entier
1 With plage.Offset(, 2 * (d + n) - 1)
If d > 0 And Application.CountA(.Cells) Then
If MsgBox("Le jour est occupé, décaler d'un jour ?", 4) = 6 Then
n = n + 1
GoTo 1 'on recommence tant qu'une cellule vide n'est pas trouvée
End If
ElseIf n = 0 Then
If MsgBox("Effacer toutes les copies réalisées ?", 4) = 6 Then
With plage(1, 2).Resize(2, Columns.Count - plage.Column)
.ClearContents 'efface les données
.ClearComments 'efface les commentaires
End With
End If
End If
If d > 0 Then
plage.Copy .Cells
.Borders(xlEdgeRight).LineStyle = xlNone 'efface la bordure
End If
End With
End Sub