This will process the files, although you will have problems as the data layout is not consistent.
You will need to update the vntMonths array to have the regional names you give to each month.
Also extend the lngYear loop to cover years you have data for, by changing the last value in the For Loop.
Sub ConsolidateData()
Dim wbkData As Workbook
Dim shtData As Worksheet
Dim shtOutput As Worksheet
Dim strPath As String
Dim lngYear As Long
Dim lngMonth As Long
Dim vntMonths As Variant
Dim strName As String
Dim strFilename As String
Dim lngOutRow As Long
Dim lngRow As Long
Dim lngHour As Long
Dim lngDay As Long
' Update regional month names
vntMonths = Array("", "Januari", "F", "M", "April", "M", "J", "J", "A", "S", "O", "N", "D")
strPath = ThisWorkbook.Path & "\"
Set shtOutput = ThisWorkbook.Worksheets("Sheet1")
lngOutRow = 2
Application.ScreenUpdating = False
For lngYear = 2004 To 2004 ' change last 2004 to latest year
For lngMonth = 1 To 12
strName = vntMonths(lngMonth) & " " & lngYear & ".xls"
strFilename = Dir(strPath & strName)
If Len(strFilename) > 0 Then
Set wbkData = Workbooks.Open(strPath & strFilename)
lngDay = 1
For Each shtData In wbkData.Worksheets
shtData.Range("C6:Z8").Copy
shtOutput.Cells(lngOutRow, 2).PasteSpecial xlPasteValues, , , True
lngHour = 0
For lngRow = lngOutRow To lngOutRow + 23
shtOutput.Cells(lngRow, 1) = DateSerial(lngYear, lngMonth, lngDay) + TimeSerial(lngHour, 0, 0)
lngHour = lngHour + 1
Next
lngOutRow = lngOutRow + 24
lngDay = lngDay + 1
Next
wbkData.Close False
End If
Next
Next
Application.ScreenUpdating = True
End Sub
Bookmarks