If a cell equals then macro

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

Guest

I have a table with letters "C" or "D" in column G starting G2 & numbers in
column H. I would like the number in a cell to be negative if cell next to it
in column G = "c"
This would apply to all numbers in column starting from H2
The macro below has to be corrected
Sub neg()
If ActiveCell.Offset(0, -1) = "c" Then
ActiveCell.Value = -ActiveCell.Value
End If
End Sub

Pls help
 
Look here:

http://www.cpearson.com/excel/Events.aspx

--
Kind regards,

Niek Otten
Microsoft MVP - Excel

|I have a table with letters "C" or "D" in column G starting G2 & numbers in
| column H. I would like the number in a cell to be negative if cell next to it
| in column G = "c"
| This would apply to all numbers in column starting from H2
| The macro below has to be corrected
| Sub neg()
| If ActiveCell.Offset(0, -1) = "c" Then
| ActiveCell.Value = -ActiveCell.Value
| End If
| End Sub
|
| Pls help
 
hi
try this...
Sub neg()
Dim r As Range
Dim rd As Range
Set r = Range("H2")
Do While Not IsEmpty(r)
Set rd = r.Offset(1, 0)
If r.Offset(0, -1) = "c" Then
r.Value = -r.Value
End If
Set r = rd
Loop
End Sub
regards
FSt1
 
Perfect - thxs a lot

Do you have another macro which can move the number to the next right hand
column (i.e .Insert Shift:=xlToRight) if cell in G = "c"??
Pls help - thxs
 
Sub neg()
Dim r As Range
Dim rd As Range
Set r = Range("H2")
Do While Not IsEmpty(r)
Set rd = r.Offset(1, 0)
If r.Offset(0, -1) = "c" Then
r.Offset(0, 1) = -r.Value
r.ClearContents
End If
Set r = rd
Loop
End Sub


Mike F
 
hi again,
add this....
r.Insert Shift:=xlToRight
after....
r.Value = -r.Value

regards
FSt1
 
Back
Top