ACK!
Back to bed for an hour, so will check back later. I just realized that typing in the negative/positive will error. No doubt something better than this, but try changing the one part to:
Parent.Controls("txtStockEOS1").Value = _
CDbl(IIf(Not Parent.Controls("txtStockSOS1").Value = vbNullString And Not Parent.Controls("txtStockSOS1").Value = "-" And Not Parent.Controls("txtStockSOS1").Value = "+", Parent.Controls("txtStockSOS1").Value, 0)) + _
CDbl(IIf(Not Parent.Controls("txtStockReceive1").Value = vbNullString And Not Parent.Controls("txtStockReceive1").Value = "-" And Not Parent.Controls("txtStockReceive1").Value = "+", Parent.Controls("txtStockReceive1").Value, 0)) + _
CDbl(IIf(Not Parent.Controls("txtStockLost1").Value = vbNullString And Not Parent.Controls("txtStockLost1").Value = "-" And Not Parent.Controls("txtStockLost1").Value = "+", Parent.Controls("txtStockLost1").Value, 0)) + _
CDbl(IIf(Not Parent.Controls("txtStockBroken1").Value = vbNullString And Not Parent.Controls("txtStockBroken1").Value = "-" And Not Parent.Controls("txtStockBroken1").Value = "+", Parent.Controls("txtStockBroken1").Value, 0)) + _
CDbl(IIf(Not Parent.Controls("txtStockWorn1").Value = vbNullString And Not Parent.Controls("txtStockWorn1").Value = "-" And Not Parent.Controls("txtStockWorn1").Value = "+", Parent.Controls("txtStockWorn1").Value, 0))
Mark