AB33 is right though, your example data doesnt match previous examples or the posts you are putting. I think we've all got the understanding of what you want in principle but you're not being clear on what the data looks like, youve supplied a workbook showing data in column E but then tell us in the posts that the data you want is in column F. If the latest file you sent is the correct version then Id recommend ensuring all of the Zones are labelled in column D, remove any references to cells in there and then add the word "End" in D700.
Saving the code below into a Module (not the Worksheet) will allow it to run against whatever worksheet is open at the time.
Sub zoneList()
outrow = 36
zone ="a"
xRow = 5
Do Until zone = "End"
zone = Cells(xRow,4).value 'the 4 represents column D
material = Cells(xRow, 5).Value 'the 5 represents column E, if you want to record column F then it should be 6
If (Len(zone) > 0) Then
outrow = outrow + 1
Cells(outrow, 20).Value = zone
End If
If (Len(material) > 0) Then
Cells(outrow, 21).Value = material
outrow = outrow + 1
End If
xRow = xRow + 1
Loop
End Sub
Bookmarks