Q:

Pulling data from non sequential rows and adding it to a different sheet in sequential rows

I am trying to pull data from a range (A1:A:2000) that has any reference to a keyword, no matter where in the range, and transpose the results to a new sheet in consecutive rows from A1 down. 
A good example would be a movie script. 
If all the lines to a movie were in Column A of a sheet: 'Full Movie Script' and I wanted JUST the lines from a single person moved to a new sheet: 'Mike's Script'.  The original 'Full Movie Script' Sheet may look like this:
A1 Mike: Blah Blah Blah
A2 Paul: Blah Blah Blah Blah Blah Blah
A3 Jerry: Blah Blah Blah Blah
A4 Mike: Blah
A5 Jerry: Blah Blah Blah  
A6 Mike: ...

What I want to do with VBA is move JUST Mike's lines, by using the keyword "Mike", to the new sheet:
Mike's Script
A1 Mike: Blah Blah Blah
A2 Mike: Blah
A3 Mike: ...

I know I could just use an IF statement in the second page and sort the data But ideally I would like to be able to do this without having to filter and sort to get the output.   I'm exploring options in Visual Basic but figured someone may know how to do this. 

A:

Put this into an unused cell,
=INDEX(A:A, AGGREGATE(15, 6, ROW(A$1:A$2000)/(LEFT(A$1:A$2000, FIND(":", A$1:A$2000)-1)="mike"), ROW(1:1)))

Fill down until you get a #NUM!  error.  When you have it working, move to the destination worksheet and correct the cell ranges to include the original worksheet.  Optionally, use an IFERROR wrapper to show a zero-length string instead of the worksheet error code.