Salut Laurent,
ton fichier quelque peu à ma sauce.
Quand tu as, comme ici, plusieurs feuilles identiques dans leur structure et leur mode de fonctionnement, tu as tout intérêt à coder dans le module 'ThisWorkbook'.
Le code de ce module est valable pour tout le classeur : un seul code peut être exécuté par des dizaines de feuilles !
On peut évidemment ajouter toutes les conditions et exceptions pour coïncider avec les particularités d'une feuille ou l'autre.
J'ai donc supprimé les boutons, remplacés dans leur rôle par la cellule "Validation" en orange.
Tu remarqueras que je ne déclare quasi aucune variable (je ne déclare jamais les variables de boucle), l'adressage pouvant être très souvent simplifié avec l'instruction "WITH".
Autres modifications :
- avec un impact important, la cellule "Validation" s'active via un double-clic ;
- les coches basculent sur un simple clic
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'
Cancel = True
'
Dim sWk As Worksheet, iRow%
'
If Not Intersect(Target, [O1]) Is Nothing Then
Application.ScreenUpdating = False
Set sWk = Worksheets(Sh.Name)
'
With Worksheets("Traçabilité")
For I = 2 To sWk.Range("O" & Rows.Count).End(xlUp).Row
If sWk.Range("O" & I).Value = "ü" Then _
iRow = .Range("A" & Rows.Count).End(xlUp).Row + 1: _
.Range("A" & iRow & ":L" & iRow).Value = sWk.Range("A" & I & ":L" & I).Value: _
sWk.Cells(I, 15) = "û": _
Union(sWk.Cells(I, 5), sWk.Cells(I, 6)) = ""
Next
End With
'
Application.ScreenUpdating = True
End If
'
End Sub
Je te laisse potasser tout ça...
A+