JackK,
Probleem van =nu() is precies wat er staat, namelijk Nu, dit is dus een waarde die zich steeds zal aanpassen.
Na elke input controleerd Excel het blad en lijkt of er berekeningen uit gevoerd moeten worden of waarden geupdate... en bij nu krijg je dan steeds de waarde van nu...
Oplossing zou zijn telkens deze waarde (cel) te selecteren, te copieën en te plakken als waarde.
Omdat dat met de hand elke keer veel tijd kost is een macro oplossing het handigste.
Ik heb even snel een blad gemaakt.
Er staat twee buttons op, één om te starten en een om te stopen.
Dit is de code van de start button
Sub Start()
'
Dim iRij As Integer
' Wat is de active rij
iRij = ActiveCell.Row
If iRij = 1 Then
'niets doen als je in rij 1 staat
End
End If
' anders zet in active rij, kolom B de waarde nu
Range("B" & iRij).Value = Now()
' Selecteer deze waarde
Range("B" & iRij).Select
' opmaak
ActiveCell.NumberFormat = "h:mm:ss"
' kopieer en plak als waarde
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
' maak D en F leeg
Range("D" & iRij).Value = ""
Range("F" & iRij).Value = ""
' klaar
End Sub
De stop code doet eigenlijk het zelfde plaatst echter ook nog een verschil tijd.
Sub Stoppen()
'
Dim iRij As Integer
iRij = ActiveCell.Row
If iRij = 1 Then
End
End If
Range("D" & iRij).Value = Now()
Range("D" & iRij).Select
ActiveCell.NumberFormat = "h:mm:ss"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Range("F" & iRij).Select
ActiveCell.NumberFormat = "h:mm:ss"
' zet het verschil van D en B in F
Range("F" & iRij).Value = Range("D" & iRij).Value - Range("B" & iRij).Value
End Sub
De tip om wat met de macro recorder te oefenen om te kijken wat excel doe in VBA als je dingen in Excel doet is een goede methode om vertrouwd te raken met VBA.
Als meer wilt leren over Excel en VBA raad ik je aan eens bij
deze link te kijken.