Private test As Boolean 'déclare la variable test
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plc As Range 'déclare la variable plc (PLage Colonne)
Dim li As Integer 'déclare la variable li (LIgne)
Dim pll As Range 'déclare la variable pll (PLage Ligne)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim msg As String 'déclare la variable msg (MeSsaGe)
If test = True Then Exit Sub 'si la varialbe test est vraie, sort de la procédure
If Target.Address <> "$F$11" Then Exit Sub 'si la changemant a lieu ailleurs qu'en F11, sort dela procédure
test = True 'définit la variable test
With Sheets("BDD") 'prend en compte l'onglet "BDD"
Set plc = .Range("A2:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage plc
li = plc.Find(Target.Value, , xlValues, xlWhole).Row 'définit la ligne li
Set pll = .Range(.Cells(li, 6), .Cells(li, 27)) 'définit la plage pll
For Each cel In pll 'boucle sur toutes les cellules éditées cel de la plage pll
If cel.Value <> 0 Then msg = IIf(msg = "", .Cells(1, cel.Column).Value, msg & " / " & .Cells(1, cel.Column).Value) 'si la cellule n'est pas vide récupère le texte en ligne 1
Next cel 'prochaine cellule cel de la boucle
End With 'fin de la prise en compte de l'onglet "BDD"
Range("D37").Value = msg 'place en D37 le texte du message msg
test = False 'redéfinit la variable test
End Sub