Tak tu máš to makro.
Pracuje tak, že do hárka "Vyber" (ktorý si vytvoríš ako 13. hárok) vyberie zo všetkých hárkov riadky, zodpovedajúce tomu menu, na riadku ktorého máš aktívnu bunku (t.j. nemusíš sa stavať priamo na meno, stačí, keď si v riadku, v ktorom je v prvom stĺpci meno, ktoré chceš sumarizovať. Taktiež je jedno, v ktorom hárku sa na daný riadok nastavíš, prehľadaných bude vždy všetkých 12 hárkov).
Ak máš viacriadkové záhlavie, treba nastaviť počiatočnú hodnotu premennej "RiadZahl" tak, aby obsahovala počet riadkov záhlavia.
Zošit musí obsahovať 13 hárkov, prvých 12 mesačných a posledný s názvom "Vyber". Do hárku "Vyber" sa ti naukladajú za sebou všetky riadky vyhovujúceho kritéria, zo všetkých hárkov, tak ako boli postupne nachádzané (od prvého po 12. hárok a v každom od prvého po jeho posledný záznamový riadok). Je to ošetrené aj pre prípady, keď niektoré hárky ešte neobsahujú okrem záhlavia žiadne záznamy...
Každé spustenie makra spúšťa proces nanovo, t.j. vymaže pôvodný sumár v hárku "Vyber" a vytvorí ho od začiatku.
Sub Vyber()
'nastavenie počtu riadkov záhlavia
RiadZahl = 1
'kontrola, či aktívnym riadkom nie je riadok záhlavia a či aktívny riadok obsahuje údaj v stĺpci "A" s menom
If ActiveCell.Row > RiadZahl And Range("A" & ActiveCell.Row) <> "" Then
Meno = Range("A" & ActiveCell.Row)
Else: MsgBox "Nesprávny riadok"
Exit Sub
End If
'výmaz predošlého výberu
Sheets("Vyber").Cells.Delete
'vytvorenie záhlavia na hárku výberu
Sheets(1).Rows("1:" & RiadZahl).Copy (Sheets("Vyber").Range("A" & 1))
'prieskum hárkov 1 až 12 a prenosy vybraných riadkov do hárku výberu
For i = 1 To 12
'kontrola, či hárok obsahuje nejaké záznamy
If Sheets(i).Range("A" & RiadZahl + 1) = "" Then GoTo DalHar
For j = RiadZahl + 1 To Sheets(i).Range("A1").End(xlDown).Row
If Sheets(i).Range("A" & j) = Meno Then
Sheets(i).Rows(j & ":" & j).Copy (Sheets("Vyber").Range("A" & RiadZahl + 1))
RiadZahl = RiadZahl + 1
End If
Next j
DalHar:
Next i
End Sub