|You are not understanding the Cells property correctly.|
The syntax is Cells(RowIndex,ColumnIndex)
Keep in mind that myRow and newRow are just variable names that I made up. By using the word Row as part of the variable name it helps me remember what the variable is used for.
In this case, myRow and newRow are the RowIndex values for the Cell property.
By changing the ColumnIndex to 2 you are telling VBA to paste an entire row but to start the paste in Column 2, which, for obvious reasons, won't work.
When doing the Copy (and checking the Visible property) it really doesn't matter what the ColumnIndex is set to because the use of .EntireRow overides it.
However, when pasting an EntireRow, you must start in Column 1.
Starting your loop with myRow = 2 is fine, but leave the ColumnIndex values at 1.
If you need to start the Paste on Sheet 4 in row 2, then set newRow = 1 before the loop, so that the first time it increments it increments to 2.