making a cell zero out after calculation

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Let’s say I have 3 columns.
I want to deduct from cell C1 when # is put in cell A1 and zero out A1 after
the calculation.
Also I want to add to cell C1 when # is put in cell B1 and zero out B1 after
the calculation.
 
you can accomplished that using vba.

Go to TOOLS>MACRO>Visual Basic Editor

then click on the sheet and paste this code in the code area.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(1, 3).Value = Cells(1, 3).Value + Cells(1, 1).Value
Cells(1, 3).Value = Cells(1, 3).Value - Cells(1, 2).Value
Cells(1, 1).Value = 0
Cells(1, 2).Value = 0
End Sub
 
'-----------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'-----------------------------------------------------------------
Const WS_RANGE As String = "A1:B1"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
Select Case .Address
Case "$A$1"
.Offset(0, 2).Value = .Offset(0, 2).Value - .Value
Case "$B$1"
.Offset(0, 1).Value = .Offset(0, 1).Value + .Value
End Select
.Value = 0
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub

'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.





--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
Re your private email, you need to adjust the cell references to your data

'-----------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'-----------------------------------------------------------------
Const WS_RANGE As String = "A2,D2"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
Select Case .Address
Case "$A$2"
.Offset(0, 2).Value = .Offset(0, 2).Value - .Value
Case "$D$2"
.Offset(0, -1).Value = .Offset(0, -1).Value + .Value
End Select
.Value = 0
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub

--
HTH

Bob Phillips

(remove xxx from email address if mailing direct)
 
Back
Top