Sub proba() Dim matrica() As Variant ReDim matrica(1 To 1, 1 To 1) Dim startDatum As Date Dim endDatum As Date startDatum = "2.1.2015." endDatum = "5.1.2015." ActiveSheet.Range("B1").Select ActiveSheet.Range(Selection, Selection.End(xlToRight)).Select Set rangDatum = Selection 'stavim red datuma u rangDatum Dim maxRed As Integer maxRed = Range("A2").End(xlDown).Row 'max broj redova dakle od A2 do A5 Dim celija As Range For red = 2 To maxRed 'krece od drugod reda do maxRedova For Each celija In rangDatum 'koja celija u rangu datuma If celija >= startDatum And celija <= endDatum Then 'ima vrijednost If red <= 2 Then 'ako je red prvi koji uzimamo u matricu kolona = celija.Column - 2 'stavimo kolonu na 1 zato da stavlja u matricu od prvog mjesta ReDim Preserve matrica(1 To red - 1, 1 To kolona) ' redimenzioniranje, povecamo drugu za kolonu tj +1 matrica(red - 1, kolona) = Cells(red, celija.Column) 'ubacimo u matricu(red,celija.column) celija.column=kolona celija koja ispunjava uvijet Else 'ako nije pocetak tj red 2 onda vise ne redimenzioniramo matricu kolona = celija.Column - 2 matrica(red - 1, kolona) = Cells(red, celija.Column) End If End If Next celija If red < maxRed Then'ako red nije dostigao max vrijednost matrica = Application.Transpose(matrica)' transponse = transportiram matricu(2,8) u matrica(8,2) ReDim Preserve matrica(1 To kolona, 1 To red),'da bi mogao redimenzionirati posljednju dimenziju matrica = Application.Transpose(matrica)' transportiram nazad matrica(8,3) u matrica(3,8) Else red = red + 1 'ako je red dostigao maxRed povecavamo red na max da bi izasli iz petlje 'mogli smo i staviti goto End If Next red 'ispis matrice, a moze biti i u list ovdje je u immediate prozor For red = 1 To maxRed - 1 For kolona = 1 To UBound(matrica, 1) Debug.Print Cells(red + 1, 1) & "(" & red & "," & kolona & ")" & matrica(red, kolona) Next kolona Next red End Sub