re,
à tester,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig As Long
Dim qte As Variant
If Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
If Not Intersect(Target, [douchette]) Is Nothing Then ' saisie douchette
Range("I3").Select
End If
If Not Intersect(Target, Range("I3")) Is Nothing Then ' saisie entrée ou sortie
Range("I4").Select
' Validation de la longueur de bobine:
Inputbox1:
qte = Application.InputBox("Entrer la longueur de la bobine en mètre linéaire", Title:="Nombre", Type:=1)
If qte = "Faux" Then
Err.Clear: GoTo Inputbox1
Else
If Range("i3") = "S" Then
Range("I4") = qte * -1
Else
Range("i4") = qte
End If
End If
End If
If Not Intersect(Target, Range("I4")) Is Nothing Then ' saisie douchette
derlig = Range("A" & Rows.Count).End(xlUp).Row
ActiveSheet.Unprotect
Cells(derlig + 1, 1).Value = [douchette].Value
Cells(derlig + 1, 2).Value = [douchette].Offset(1, 0).Value
Cells(derlig + 1, 3).Value = [douchette].Offset(2, 0).Value
Cells(derlig + 1, 4).Value = [douchette].Offset(3, 0).Value
'*******
'Cells(derlig + 1, 5).Value = Fonction recherchev à inserer
Cells(derlig + 1, 5).Value = WorksheetFunction.VLookup(Cells(derlig + 1, 1), ActiveSheet.Range("A1:g10000"), 5, 0)
'*********
Cells(derlig + 1, 6).Value = Cells(derlig + 1, 4).Value * Cells(derlig + 1, 5).Value / 1000
Cells(derlig + 1, 7).Value = Date
CommandButton1_Click
ActiveSheet.Protect
End If
Application.EnableEvents = True
End Sub