Re
Dans la feuille Com Formation, remplacez votre code par celui ci-dessous
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Range, plage As Range
Dim ligA As Byte, ligC As Byte
Set plage = Range("A7:A20") 'définit la plage
If Not Intersect(Target, plage) Is Nothing Then 'condition si la cellule double cliquée est dans la variable plage
Range("N:Q").ClearContents 'effacer les donnees des colonnes N a Q
Cancel = False
With Sheets("ANALYTIQUE")
' recherche de la valeur de la cellule cliquee entre ligne 11 et 139 dans colonne A feuille Analytique
Set c = .Range("A11:A139").Find(Target, LookIn:=xlValues, lookat:=xlPart)
ligC = Target.Row 'définir variable reprenant la référence de la ligne où le double click a été fait
If Not c Is Nothing Then 'condition si la variable c a une valeur
ligA = c.Row + 1 'définir variable pour ligne la variable c à laquelle on ajoute 1 pour commencer la ligne en dessous
Do 'boucle
If .Range("A" & ligA) Like "*Total*" Then Cancel = True: Exit Sub 'si on trouve total on arrête le code
Cells(ligC, 14) = .Cells(ligA, 1)
Cells(ligC, 15) = .Cells(ligA, 2)
Cells(ligC, 16) = .Cells(ligA, 3)
Cells(ligC, 17) = .Cells(ligA, 4)
ligC = ligC + 1
ligA = ligA + 1
Loop
End If
End With
Else
MsgBox "Votre sélection n'est pas dans plage requise", vbInformation, "HORS ZONE"
End If
Cancel = True 'pour ignorer le second clic fait par l'utilisateur lors du double clic
End Sub
Si ok et terminé pensé à cloturer le fil
Cordialement