You need to wrap your code in code tags before the forum police get here!
Edit your post, click [Go Advanced], then highlight your code, and click the [Code] button. It makes it easier for people to read it and help you, and preserves your formatting 
To be honest that code, although it works, does seem a bit long winded! Here is something that will do what you want.
Sub Using_Find()
Dim found As Range
Dim dest_row As Long
Dim first_addr As String
dest_row = 1
With Sheets("Data")
On Error Resume Next
Set found = .Range("B:B").Find(what:="Voids", LookIn:=xlValues, lookat:=xlPart)
On Error GoTo 0
If Not found Is Nothing Then
first_addr = found.Address
Do
.Rows(found.Row).EntireRow.Copy Destination:=Sheets("Voids").Rows(dest_row).EntireRow
dest_row = dest_row + 1
Set found = .Range("B:B").FindNext(found)
Loop While Not found Is Nothing And found.Address <> first_addr
End If
End With
End Sub
NOTE: When working with multiple sheets it is always worth explicitly stating which sheet you want to reference. In your previous code you do with the "Voids" sheet, but not with the Sheet that contains your data. In my code above I have 'assumed' a name of "Data" for the sheet that contains all the data you are working from, so you will need to modify that to be correct.
This line is the one that starts the 'Find':
Set found = .Range("B:B").Find(what:="Voids", LookIn:=xlValues, lookat:=xlPart)
It is the use of 'xlPart' in this line that will look for text within a cell without the entire cell having to match the word "Voids". If you wanted to only match complete cells you would use xlWhole instead.
Be aware though, that because you are now looking for it just containing that word, or rather those letters, if column B contained the word "Avoids" then that too would match.
Bookmarks