Let's make it with small steps - here is a proposition of a framework for you. Create a button and assign the macro mytestmacro to it:
First test it and then
Sub mytestmacro()
Dim FileName As Variant
Dim SourceFile as Workbook, MainFile as workbook : Set MainFile=ThisWorkbook

FileName = Application.GetOpenFilename(filefilter:="Excel files (*.xls*),*.xls*", FilterIndex:=3, Title:="Choose a file")
If FileName = False Then  
   MsgBox "No file selected!", vbcritical
   Exit Sub
else
   Set SourceFile = Workbooks.Open(Filename)
   ' and here your processing, for instance
   SourceFile.Sheets(1).Range("A1:D5").copy MAinFile.Sheets(1).cells(rows.count,"A").end(xlup).offset(1,0)
   ' then close file and let user (you) know it is finished
   sourcefile.close false
   msgbox "finished copying from " & Filename      
end if
End Sub
if it works adjust the copying part:
   SourceFile.Sheets(1).Range("A1:D5").copy MAinFile.Sheets(1).cells(rows.count,"A").end(xlup).offset(1,0)
to copy from and to right places in your workbooks (as it is now it copies from Sheet1!A1:D5 of newly open file to first blank cell in A column in Sheet1 in your main file.