Macro Help

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

Guest

I need to write a macro to do some math. Cell A has a date lets say 5/15/80,
Cell G has a date lets say 5/15/06, Cell F has the eqation G-6574. If Cell A
= cell G then Place an X in cell I. This is what i have so far:
Dim i As Integer
i = 0
Range("C:c").Select
Do
activecell.FormulaR1C1 = "=RC[-1]-6574"
i = i + 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

End Sub
For some reason this wont loop through all the cells, it work on the first
cell then finishes leaving the next couple cells empty even though they
should also have data in them!! Any Help would be greatly appreciated, Neal.
 
from your description
If Cell A >= cell G then Place an X in cell I


Sub ProcessCells()
set rng = Range(Cells(2,1),Cells(rows.count,1).End(xlup)
for cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next
end sub

the code you show doesn't seem to have much relation to what you described.

--
Regards,
Tom Ogilvy




Neal said:
I need to write a macro to do some math. Cell A has a date lets say 5/15/80,
Cell G has a date lets say 5/15/06, Cell F has the eqation G-6574. If Cell A
= cell G then Place an X in cell I. This is what i have so far:
Dim i As Integer
i = 0
Range("C:c").Select
Do
activecell.FormulaR1C1 = "=RC[-1]-6574"
i = i + 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

End Sub
For some reason this wont loop through all the cells, it work on the first
cell then finishes leaving the next couple cells empty even though they
should also have data in them!! Any Help would be greatly appreciated, Neal.
 
The first code I wrote was just to do the actual math. I didnt use the same
cells because I didnt know if the code was right. Cell F will get its value
from cell G-6574. So cell A has to be greater than cell F.So the code would
look like this?

Dim i As Integer
i = 0
Range("F:F").Select
Do
activecell.FormulaR1C1 = "=RC[1]-6574"
i = i - 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
set rng = Range(Cells(2,1),Cells(rows.count,1).End(xlup)
for cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next
End Sub




Tom Ogilvy said:
from your description
If Cell A >= cell G then Place an X in cell I


Sub ProcessCells()

the code you show doesn't seem to have much relation to what you described.

--
Regards,
Tom Ogilvy




Neal said:
I need to write a macro to do some math. Cell A has a date lets say 5/15/80,
Cell G has a date lets say 5/15/06, Cell F has the eqation G-6574. If Cell A
= cell G then Place an X in cell I. This is what i have so far:
Dim i As Integer
i = 0
Range("C:c").Select
Do
activecell.FormulaR1C1 = "=RC[-1]-6574"
i = i + 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

End Sub
For some reason this wont loop through all the cells, it work on the first
cell then finishes leaving the next couple cells empty even though they
should also have data in them!! Any Help would be greatly appreciated, Neal.
 
Looks like I had a typo

for each cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next


Add the workd each

--
Regards,
Tom Ogilvy


Neal said:
The first code I wrote was just to do the actual math. I didnt use the same
cells because I didnt know if the code was right. Cell F will get its value
from cell G-6574. So cell A has to be greater than cell F.So the code would
look like this?

Dim i As Integer
i = 0
Range("F:F").Select
Do
activecell.FormulaR1C1 = "=RC[1]-6574"
i = i - 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
set rng = Range(Cells(2,1),Cells(rows.count,1).End(xlup)
for cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next
End Sub




Tom Ogilvy said:
from your description
If Cell A >= cell G then Place an X in cell I


Sub ProcessCells()

the code you show doesn't seem to have much relation to what you described.

--
Regards,
Tom Ogilvy




Neal said:
I need to write a macro to do some math. Cell A has a date lets say 5/15/80,
Cell G has a date lets say 5/15/06, Cell F has the eqation G-6574. If Cell A
= cell G then Place an X in cell I. This is what i have so far:
Dim i As Integer
i = 0
Range("C:c").Select
Do
activecell.FormulaR1C1 = "=RC[-1]-6574"
i = i + 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

End Sub
For some reason this wont loop through all the cells, it work on the first
cell then finishes leaving the next couple cells empty even though they
should also have data in them!! Any Help would be greatly appreciated, Neal.
 
thanks for the help

Tom Ogilvy said:
Looks like I had a typo

for each cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next


Add the workd each

--
Regards,
Tom Ogilvy


Neal said:
The first code I wrote was just to do the actual math. I didnt use the same
cells because I didnt know if the code was right. Cell F will get its value
from cell G-6574. So cell A has to be greater than cell F.So the code would
look like this?

Dim i As Integer
i = 0
Range("F:F").Select
Do
activecell.FormulaR1C1 = "=RC[1]-6574"
i = i - 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
set rng = Range(Cells(2,1),Cells(rows.count,1).End(xlup)
for cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next
End Sub




Tom Ogilvy said:
from your description
If Cell A >= cell G then Place an X in cell I


Sub ProcessCells()
end sub

the code you show doesn't seem to have much relation to what you described.

--
Regards,
Tom Ogilvy




:

I need to write a macro to do some math. Cell A has a date lets say 5/15/80,
Cell G has a date lets say 5/15/06, Cell F has the eqation G-6574. If Cell A
= cell G then Place an X in cell I. This is what i have so far:
Dim i As Integer
i = 0
Range("C:c").Select
Do
activecell.FormulaR1C1 = "=RC[-1]-6574"
i = i + 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

End Sub
For some reason this wont loop through all the cells, it work on the first
cell then finishes leaving the next couple cells empty even though they
should also have data in them!! Any Help would be greatly appreciated, Neal.
 
Tom,
When I rewrote the code it gives me an error on the comma for line
" if cell.value>= cells(cell.row,"G") the comma between cell.row,"G"
I've tried a couple things to corre3ct it and I dont know how.

Tom Ogilvy said:
Looks like I had a typo

for each cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next


Add the workd each

--
Regards,
Tom Ogilvy


Neal said:
The first code I wrote was just to do the actual math. I didnt use the same
cells because I didnt know if the code was right. Cell F will get its value
from cell G-6574. So cell A has to be greater than cell F.So the code would
look like this?

Dim i As Integer
i = 0
Range("F:F").Select
Do
activecell.FormulaR1C1 = "=RC[1]-6574"
i = i - 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
set rng = Range(Cells(2,1),Cells(rows.count,1).End(xlup)
for cell in rng
if cell.Value >= cells(cell.row,"G") then Cells(cell.Row,"I") = "X"
Next
End Sub




Tom Ogilvy said:
from your description
If Cell A >= cell G then Place an X in cell I


Sub ProcessCells()
end sub

the code you show doesn't seem to have much relation to what you described.

--
Regards,
Tom Ogilvy




:

I need to write a macro to do some math. Cell A has a date lets say 5/15/80,
Cell G has a date lets say 5/15/06, Cell F has the eqation G-6574. If Cell A
= cell G then Place an X in cell I. This is what i have so far:
Dim i As Integer
i = 0
Range("C:c").Select
Do
activecell.FormulaR1C1 = "=RC[-1]-6574"
i = i + 1
Loop Until IsEmpty(activecell.Offset(i, -1))
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

End Sub
For some reason this wont loop through all the cells, it work on the first
cell then finishes leaving the next couple cells empty even though they
should also have data in them!! Any Help would be greatly appreciated, Neal.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top