1. As I can see from your example, your main book is a 3 sheet workbook, and you copy the information from 1 spreadsheet (sh) to each of this 3 shs, so you just have the same info in 3 different shs. Is this how you wanna it to be?
2. As your code is designed you need to run the code and specify the name of the survey workbook, through an input box, for each of your 50 surveys. ?
3. you specified this code
Code:
Set ws1 = wb1.Worksheets("Sheet1") , but you don't use it after this, when you copy the values, instead you just wrote the
wb1.Worksheets("Sheet1"), in the time you could use just
ws1, for example:
Code:
ws1.Range("C1").Copy Destination:=wb.Worksheets(sSheet).Range("A3") , instead of this
Code:
wb1.Worksheets("Sheet1").Range("C1").Copy Destination:=wb.Worksheets(sSheet).Range("A3") 4. You found the next empty row, but you also don't use this info in your code.
Code:
'Finds next empty row
ws.Range("A1").End(xlDown).Select You should change it to
Code:
'Finds next empty row
xrow = shres.Range("A3").End(xlDown).Row , this will give you the number of the next empty row.
5. If I understood right, you wanna each survey in a new row, am I right? In this case you need to specify the destination cell, using some variables, like
Code:
wb1.Worksheets("Sheet1").Range("C1").Copy Destination:=wb.Worksheets(sSheet).Range("A" & xrow) 6. What happens when you reopen a survey for which you already have the information in the main workbook, or such a situation is excluded?
7. Why do you have the copy paste part twice, you a just doing the same thing twice, and it does not change any thing.