
Skúste toto:
Sub MALED()
Dim PoslRadekV As Long, PoslRadekD As Long
PoslRadekD = wsData.Cells(Rows.Count, 1).End(xlUp).Row
If PoslRadekD < 2 Then MsgBox "Žádná data v liste DATA.", vbExclamation, "Chyba": Exit Sub
With wsVypocet
PoslRadekV = .Cells(Rows.Count, 2).End(xlUp).Row
If PoslRadekV < 5 Then MsgBox "Žádná data v liste VÝPOČET.", vbExclamation, "Chyba": Exit Sub
Application.ScreenUpdating = False
With .Cells(5, 3).Resize(PoslRadekV - 4, 3)
.Formula = Array("=SUMIFS(DATA!$B$2:$B$" & PoslRadekD & ",DATA!$A$2:$A$" & PoslRadekD & ",$B5)", "=VLOOKUP($B5,DATA!$A$2:$B$" & PoslRadekD & ",2,FALSE)", "=COUNTIF(DATA!$A$2:$A$" & PoslRadekD & ",$B5)")
.Value = .Value
End With
Application.ScreenUpdating = True
End With
End Sub
Sub MALED()
Dim PoslRadekV As Long, PoslRadekD As Long
PoslRadekD = wsData.Cells(Rows.Count, 1).End(xlUp).Row
If PoslRadekD < 2 Then MsgBox "Žádná data v liste DATA.", vbExclamation, "Chyba": Exit Sub
With wsVypocet
PoslRadekV = .Cells(Rows.Count, 2).End(xlUp).Row
If PoslRadekV < 5 Then MsgBox "Žádná data v liste VÝPOČET.", vbExclamation, "Chyba": Exit Sub
Application.ScreenUpdating = False
With .Cells(5, 3).Resize(PoslRadekV - 4, 3)
.Formula = Array("=SUMIFS(DATA!$B$2:$B$" & PoslRadekD & ",DATA!$A$2:$A$" & PoslRadekD & ",$B5)", "=VLOOKUP($B5,DATA!$A$2:$B$" & PoslRadekD & ",2,FALSE)", "=COUNTIF(DATA!$A$2:$A$" & PoslRadekD & ",$B5)")
.Value = .Value
End With
Application.ScreenUpdating = True
End With
End Sub
Příloha:
42242_rozkopiruje-vzorec-podle-poctu-radku.zip (313kB, staženo 20x)
citovat