Hello Anu,
Try this. I am not sure what you mean by >NBD so you will have to work the logic out on that one or explain it a bit better.
Option Explicit
Sub ExtractData()
Dim lngI As Long, lngJ As Long, lngK As Long
Dim strAdd1 As String, strAdd2 As String, strAdd3 As String
Dim strAdd4 As String, strAdd5 As String, strAdd6 As String
'Set up variables, assume header row on each sheet
lngI = 2
lngJ = 2
lngK = 2
strAdd3 = "A" & lngI
strAdd4 = "A" & lngJ
strAdd5 = "A" & lngK
'Assume macro initiated from Sheet1 and no blank entries until end of ColA
Do Until Range(strAdd3).Value = ""
strAdd1 = "G" & lngI
strAdd2 = "AL" & lngI
strAdd6 = "AP" & lngI
If Range(strAdd1).Value = "Metro" And Range(strAdd2).Value > 2 Then
Range(strAdd3).EntireRow.Copy Sheets("Sheet2").Range(strAdd4)
lngJ = lngJ + 1
ElseIf Range(strAdd1).Value = "Remote-1" And Range(strAdd2).Value > 4 Then
Range(strAdd3).EntireRow.Copy Sheets("Sheet2").Range(strAdd4)
lngJ = lngJ + 1
ElseIf Range(strAdd1).Value = "Remote-2" And Range(strAdd2).Value > "NBD" Then
Range(strAdd3).EntireRow.Copy Sheets("Sheet2").Range(strAdd4)
lngJ = lngJ + 1
End If
If Range(strAdd1).Value = "Metro" And Range(strAdd6).Value > 4 Then
Range(strAdd3).EntireRow.Copy Sheets("Sheet3").Range(strAdd5)
lngK = lngK + 1
ElseIf Range(strAdd1).Value = "Remote-1" And Range(strAdd6).Value > 6 Then
Range(strAdd3).EntireRow.Copy Sheets("Sheet3").Range(strAdd5)
lngK = lngK + 1
ElseIf Range(strAdd1).Value = "Remote-2" And Range(strAdd6).Value > "NBD" Then
Range(strAdd3).EntireRow.Copy Sheets("Sheet3").Range(strAdd5)
lngK = lngK + 1
End If
lngI = lngI + 1
strAdd3 = "A" & lngI
strAdd4 = "A" & lngJ
strAdd5 = "A" & lngK
Loop
End Sub
Please note, I have not tested this fully but the mini test that I did seemed to give what I imagined you might have wanted.
Regards
Harry