Well, let's think for a minute.
Your function is going to tell you the number of a row. (FindEmptyCellInColumn gives you the row number of an empty cell)
It does this by figuring out the row number (.Row) of the range that comprises the last used cell (Sheet2.Cells(Sheet2.Rows.Count, pColumn).End(xlUp))
So the expression
gives you the row number of the last used cell (ooops - that was my earlier mistake, wasn't it 
So, in order to get the row past that, we simnply add 1 to that value. You could do it by having a temporary variable to get the last used row, and then adding one to that, or you could economize by simply adding 1 right onto the end of the expressions:
At the risk of sounding a little bit stuffy (hey, I'm an Old Fart, I'm allowed to
), your questions indicate that you are flying a little by the seat of your pants when it comes to this coding stuff. May I recommend that you read the erly chapters of wonderful book called Algorithms + Data Structures = Programs
This is by Niklaus Wirth, one of the pioneers of structured programming, and its more important design concept, Stepwise Refinement. Te later chapters are pretty heavy going, but the first section on Fundamental Data Structures is still (after some 40 years in the field) regular bed-time reading - it's that good!
HTH
Tony
Bookmarks