Private Sub Worksheet_Change(ByVal Target As Range)
'---cocher la référence Microsoft Word xx.x Object Library---
Dim r As Range, Appli As Word.Application, recap As Word.Document
Dim flag1 As Boolean, flag2 As Boolean, cas As Word.Document, txt$
Set r = Range("C3:D" & [C65536].End(xlUp).Row) 'plage à adapter
If Intersect(Target, r) Is Nothing Then Exit Sub
On Error Resume Next
Set Appli = GetObject(, "Word.Application")
Set recap = Appli.Documents("Recap.doc")
If recap Is Nothing Then MsgBox "Ouvrez 'Recap.doc' !": flag1 = True
recap.Range(0, recap.Characters.Count).Delete 'RAZ
For Each r In r.Columns(1).Cells
flag2 = False
Set cas = Nothing
If r <> "" And r(1, 2) = "Oui" Then
Set cas = Appli.Documents(r & ".doc")
If cas Is Nothing Then MsgBox "Ouvrez '" & r & ".doc' !": flag2 = True
txt = txt & cas.Range(0, cas.Characters.Count) & vbLf & vbLf
End If
If flag1 Or flag2 Then
Application.EnableEvents = False
r(1, 2) = ""
Application.EnableEvents = True
End If
Next
recap.Range(0, 0).Text = txt
End Sub