I think you'll have to load the array using a loop:

Sub GetMeterCode()

Dim ws As Worksheet
Dim val As Integer, LR As Integer, rowsTotal As Integer
Dim rngArray(), i As Long

Dim rngTemp As Range

Set ws = Workbooks("ChooseMeterCode_Ver02.xls").Worksheets("first")
val = UserForm1.txtb1.Value

MsgBox " The export code value is : " & val

ws.Range("A5:C5").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="=" & val
LR = ws.Range("A" & Rows.Count).End(xlUp).Row
'Set rngTemp = ws.Range("A5:C5").AutoFilter(Field:=3, Criteria1:="=" & val)
rowsTotal = ws.Range("A5:A" & LR).SpecialCells(xlCellTypeVisible).Count - 1

ReDim rngArray(1)
MsgBox "The filtered row numbers are: " & rowsTotal

For i = 6 To LR
If Not Cells(i, "A").EntireRow.Hidden Then
ReDim Preserve rngArray(UBound(rngArray) + 1)
    rngArray(UBound(rngArray)) = Cells(i, "A")
End If
Next

 For i = 2 To UBound(rngArray)
    MsgBox "Values from array are : " & rngArray(i)
 Next i

ws.AutoFilterMode = False

End Sub