Newbie's question.

L

Linebaker

Hi everybody,

I don't know how to compare 2 cells. If I refered to a cell, like A1 and
compare it to D1, how I must write the line because my loop will always
referd to A1. I have the same problem when I want to insert a partial row,
it will be always at D1:G1.

Sub Macro1()
Range("a1").Activate
Do until ActiveCell.Value <0.01
'Cell A1 = cell D1?
If Range("a1") = Range("d1") Then
'Cell B1 = cell E1?
If Range("b1") = Range("e1") Then
'Cell C1 = cell F1?
If Range("c1") = Range("f1") Then
'Return to A2
ActiveCell.Offset(1, 0).Select
End If
End If
Else: Range(d1:g1).Activate
'Insert a partial row at D1:G1 to move date
Selection.Insert Shift:=xlDown
'Go to G1 and write Change
ActiveCell.Offset(0, 4).Select
ActiveCell.FormulaR1C1 = "Change"
End If
Loop
End Sub

Thanks for your help
 
B

Bob Phillips

Is this what you want

Sub Macro1()
Dim i As Long

With Range("a1")
Do Until ActiveCell.Value < 0.01
'Cell A1 = cell D1?
If .Offset(i, 0) = .Offset(i, 3) Then
'Cell B1 = cell E1?
If .Offset(i, 1) = .Offset(i, 4) Then
'Cell C1 = cell F1?
If .Offset(i, 2) = .Offset(i, 5) Then
'Return to A2
End If
End If
Else
.Range(Cells(i + 1, 1), Cells(i + 1, 7)).Insert
Shift:=xlDown
'Go to G1 and write Change
.Offset(i, 6).Value = "Change"
End If
i = i + 1
Loop
End With
End Sub

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
L

Linebaker

Hi Bob,

I tried it but when A1 <> D1 it jump to the end sub and didn't insert the
word "Change" in G1. How to do this.

Thanks very much Bob for your help.
 
B

Bob Phillips

Is this what you want

Sub Macro2()
Dim i As Long

With Range("a1")
Do Until ActiveCell.Value < 0.01
'Cell A1 = cell D1?
If .Offset(i, 0) = .Offset(i, 3) Then
'Cell B1 = cell E1?
If .Offset(i, 1) = .Offset(i, 4) Then
'Cell C1 = cell F1?
If .Offset(i, 2) = .Offset(i, 5) Then
'Return to A2
End If
End If
Else
.Range(Cells(i + 1, 1), Cells(i + 1, 7)).Insert
Shift:=xlDown
'Go to G1 and write Change
.Offset(i - 1, 6).Value = "Change"
End If
i = i + 1
Loop
End With
End Sub

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 

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

Top