In the following code, add other code names for your sheets, where indicated. Also, you'll need to allow access to the VBProject object model...
Ribbon > Developer > Macro Security > Macro Settings > select/check Trust access to the VBA project object model
Option Explicit
Sub RetrieveValues()
Dim sFullName As String
Dim wkbSource As Workbook
Dim wksSource As Worksheet
Dim wkbDest As Workbook
Dim wksDest As Worksheet
Dim vCodeNames As Variant
Dim vCodeName As Variant
Dim vRanges As Variant
Dim RngIndx As Integer
sFullName = Application.GetOpenFilename( _
FileFilter:="Excel Files (*.xlsx;*.xlsm;*.xlsb;*.xls), *.xlsx;*.xlsm;*.xlsb;*.xls", _
Title:="Select a File", _
ButtonText:="Select")
If sFullName = "False" Then Exit Sub
Application.ScreenUpdating = False
On Error GoTo ErrHandler
Set wkbDest = ActiveWorkbook
Set wkbSource = Workbooks.Open(Filename:=sFullName, ReadOnly:=True)
vCodeNames = Array("Sheet5", "Sheet6", "Sheet7") 'add other code names accordingly
vRanges = Array("C8:AG16", "C19:AG21", "C29:AG26", "C29:AG32")
For Each vCodeName In vCodeNames
Set wksSource = wkbSource.Worksheets(CStr(wkbSource.VBProject.VBComponents(vCodeName).Properties("Name")))
Set wksDest = wkbDest.Worksheets(CStr(wkbDest.VBProject.VBComponents(vCodeName).Properties("Name")))
For RngIndx = 0 To UBound(vRanges)
wksDest.Range(vRanges(RngIndx)).Value = wksSource.Range(vRanges(RngIndx)).Value
Next RngIndx
wksDest.Range("O2").Value = wksSource.Range("Q2").Value
Next vCodeName
wkbSource.Close savechanges:=False
ExitSub:
Application.ScreenUpdating = True
Set wkbSource = Nothing
Set wkbDest = Nothing
Set wksDest = Nothing
Exit Sub
ErrHandler:
MsgBox "Error " & Err.Number & ":" & Chr(10) & Chr(10) & Err.Description
Resume ExitSub
End Sub
Hope this helps!