J'ai essayé ça a résolu plein de problème!
Il en demeure deux petits néanmoins:
Un détail mais les demandes déjà effectuées avant la manip restent et sont verrouillées, comment les supprimer?
Et un problème autre, qui vient de mon codage de "WorksheetsChange (résultats)", théoriquement, j'attend que quand une case du tableau prend la valeur terminée, toutes les surfaces à mesurer pour une même machine s'effacent, mais ce n'est pas le cas, une solution?
C'est cette partie de code qui est concernée:
If Target.Address = "$J$7" Or Target.Address = "$J$8" Or Target.Address = "$J$9" Then 'Si les cellules qui changent sont J7 ou J8
Call HeureJ9 'On appelle Heure qui va afficher l'heure sur J9
Dim i As Integer
Dim x As Double
Dim n As Integer
Dim y As Integer
For i = 4 To 20
If Sheets("demande").Range("F" & i).Value = 600 Then 'On cherche les pièces de la machine à mesurer
Sheets("Demande").Range("I4").Value = Sheets("Demande").Range("A" & i).Value 'Transmet les données vers les pièces terminées
Sheets("Demande").Range("J4").Value = Sheets("Demande").Range("B" & i).Value
Sheets("Demande").Range("K4").Value = Sheets("Demande").Range("C" & i).Value
Sheets("Demande").Range("L4").Value = Sheets("Demande").Range("D" & i).Value
Sheets("Demande").Range("O4").Value = Format(Time, "h:mm;@")
Sheets("Demande").Range("O4").Value = Sheets("Demande").Range("H" & i).Value
Sheets("Demande").Range("M4").Value = Sheets("Demande").Range("E" & i).Value
Sheets("Demande").Range("N4").Value = Format(Time, "h:mm;@") 'La cellule L4 devient l'heure
Sheets("Demande").Range("P4").Value = Format(Time, "h:mm;@") ' pour donner un format à la cellule avant d'y écrire
Sheets("Demande").Range("P4") = CDate(Sheets("Demande").Range("N4")) - CDate(Sheets("Demande").Range("G" & i)) 'Temps pris pour mesurer
x = CDate(Sheets("Demande").Range("H" & i)) - CDate(Sheets("Demande").Range("P4")) 'Compare le temps mis au temps attendu
If x > 0 Then
Sheets("Demande").Range("Q4").Value = "Avance"
ElseIf x < 0 Then
Sheets("Demande").Range("Q4").Value = "Retard"
x = -x
End If
Sheets("Demande").Range("R4").Value = Format(Time, "h:mm;@") 'Donne un format à la cellule
Sheets("Demande").Range("R4").Value = x 'Prend la vameur de l'écart entre temps attendu et temps mis
y = 5
For n = i + 1 To n = i + 10
If Sheets("Demande").Range("B" & n) = "" Then
Sheets("Demande").Rows(y).Insert
Sheets("Demande").Rows(y).Locked = False
Sheets("Demande").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
n = n + 1
Sheets("Demande").Range("L" & y) = Sheets("Demande").Range("D" & n).Value
Sheets("Demande").Range("M" & y) = Sheets("Demande").Range("E" & n).Value
n = n + 1
y = y + 1
End If
Next n
Sheets("Demande").Range("B" & i).ClearContents 'Vide les pièces à mesurer
Sheets("Demande").Range("C" & i).ClearContents
Sheets("Demande").Range("D" & i).ClearContents
Sheets("Demande").Range("E" & i).ClearContents
Sheets("Demande").Range("A" & i).ClearContents
Sheets("Demande").Range("F" & i).ClearContents
Sheets("Demande").Range("G" & i).ClearContents
Sheets("Demande").Range("H" & i).ClearContents
Sheets("Demande").Rows(4).Insert
Sheets("Demande").Rows(4).Locked = False
Sheets("Demande").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
End If
Next i
End If
Je te joins également la nouvelle version du fichier pour que tu puisse y voir plus clair