Newbie's question.

  • Thread starter Thread starter Linebaker
  • Start date Start date
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
 
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)
 
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.
 
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)
 
Back
Top