Nie, nie. Zoberte prosím Váš hotový súbor, eliminujte citlivé data, v žiadnom prípade ale nemažte všetko a už vôbec nie meniť štruktúru, formát alebo usporiadanie. Ponechajte vzorce. Na konkrétnej ukážke (manuálne si vytvorte výsledok) mi tam ukážte ako to vyzerá pre makrom, a ako po makre. Slovný popis pre Váš problém nestačí! Rozhoduje maličkosť, napr. to že poviete, že tam máte vzorce. Čo znamená tam ? Vzorce vypĺňajú hodnoty, alebo ich sčítajú? To určuje rozdielnu metódu riešenia. Akých 15 hodnôt ? Vraveli ste o súčte 30, nie o počte 15/30. Nemôžete si vycucnúť pár riadkov z navrhnutého kódu, a použiť ich inak. Načo je napr. procedúra Skok, keď nieje volaná, ja som to v mojom makre robil inak... Takže to chce ukážkovú prílohu. Opäť je predpokladám čas, ktorý venujem opakovanému čítaniu toho čo ste napísal (aby som uhádol, čo chcete, ale teraz sa mi to nepodarilo), dlhší ako riešenie.
Inak UserName je niekoľko druhov. Application.UserName je meno čo je zapísané v nastavení Excelu. Environ("UserName") je meno prihláseného užívateľa Win.
MINIFS nieje ani v 2016 Pro. Pravdepodobne iba vo verzii 365 (raz to tu bolo spomínané tuším...)
Podľa toho, čo som čítal, tak sa INDIRECT/NEPŘÍMÝ.ODKAZ nedá používať v maticovom vzorci. A ako 3D (to iba predpokladám) tiež asi nie.
Možno sa mýlim...
Ale ja som napísal aj riešenie druhého problému. Nevolajte vytvorený objekt L1, ale Controls("L1"). Skúste si to napr. na vlastnosti .Caption. Ak dáte L1.Caption="abc" máte chybu, ale ak dáte Controls("L1").Caption="abc" prejde bez chyby.
Samozrejme skúšku robím na kóde s odstránenýi riadkami
D1 = DateAdd("d", Sheets("graf").Range("g30"), labelCounter - 1)
a
.Height = WorksheetFunction.SumIfs(škoda, jméno, Sheets("graf").Range("a5"), datum, D1) / 10
K nim nemáme podklady (prílohu)...
Posledný riadok
L1.Background = &HFFFFFF
alias
Controls("L1").Background = &HFFFFFF
Skúste hádať. Áno, správne, Label nemá vlastnosť Background.
Pozastavenie nieje možné, takže to obabreme nasledovne. Prvé stlačenie tlačítka prichystá prvú stranu.Ďalšie stlačenia tlačítka vytlačia Vami doplnenú stranu, a prichystajú nasledujúcu stranu. Tú zase upravíte a stlačením vytlačíte a pokračujete, až po vtedy, čo bude na tlačítku nápis Dokončiť. Vtedy bude mať tlačítko na starosti už len následné vytlačenie poslednej strany. Nože poskúšajte. Zrušiť to pôjde zatvorením súboru (či už s uložením alebo bez).
Príklad. Tlačí na aktuálne predvolenej tlačiarni. Takže pozor, ak stlačíte tlačítko, všetko vytlačí. Na vyskúšanie, je najlepšie si nainštalovať nejakú Free PDF tlačiareň. Tento príklad má 4 riadky, teda vytlačí 4 formuláre.
Keď nám vložíte prílohu, alebo podstatne lepšie popíšete čo znamená "doplňovat údaje ze seznamu na Listu 2", tak Vám určite pomôžeme. Teraz len z brucha napr VLOOKUP, HLOOKUP, MATCH, INDEX, (SVYHLEDAT, VVYHLEDAT, POZVYHLEDAT), alebo iba obyčajné "=List2!A1"... Nedá sa asi konkrétnejšie poradiť...
Ak pripadne posledný deň v mesiaci na So/Ne, urobí sa to v Pi. Pri otvorení po zadanom čase samozrejme.
Alebo chcete zapracovať aj sviatky ?
EDIT: Tak prílohu som vymenil za novú, kde sa to posunie aj ak to padne na sviatok. Pripadajú do úvahy v CZ aj v SK iba 3 sviatky na konci mesiaca.
PS: Pre SK si iba upravte jeden dátum v príkaze While vo VBA v procedúre Private Sub Workbook_Open()
z
...DateSerial(Y, 9, 28)...
na
...DateSerial(Y, 8, 29)...
a pre CZ opačne (teraz je to pre CZ)
To isté si upravte aj v skúšobnej procedúre Private Sub Workbook_Open_Test() v module Module1
Vzorcom by to išlo tiež. Ale na čo to je dobré ? Tie 2 "prázdne" bunky nie sú prázdne - je tam vzorec. Teda ak to chcete použiť tak, že tam potom chcete niečo dopisovať do tých prázdnych buniek, tak to musíte previesť na hodnoty (kopírovať - hodnoty).
??? To akože ide iba o podmienku IF ?
Function VYPOCET(Y As Integer, Opakuj As Integer)
Dim i As Integer
VYPOCET = 0
For i = 1 To Opakuj
If Y Mod 2 <> 0 Then
'Nepárne
VYPOCET = VYPOCET + Y
Else
'Párne
VYPOCET = VYPOCET + i * Y
End If
Next i
End Function
Pr. hárky 1-2 jeden vzorec, hárky 3-4 druhý vzorec, hárky 5-6 makro.
Napríklad. Plus si k tomu vytvorte dynamické oblasti, aby ste nemusel prepisovať vzorce, pri zväčšovaní.
Príklad, ktorý si poradí s desatinami ako čiarky aj bodky, prázdnym Labelom, aj nečíslom (textom).
Ale aj tak máte divnú požiadavku 
Funkcia sa vola Sucet. Funkcia ma navratovu hodnotu. Na zaciatku je vzdy 0. Funkciou Val() prevedieme text na cislo. Samozrejme ak ten text nebude cislo, nastane chyba. To som pisal. Da sa to poosetrovat, len nie z mobilu :)
No a teda pripocitavame do premennej Sucet postupne prekonvertovavane texty na cisla...
Len tak z mobilu. Je to bez oŝetrenia chyby.
Function Sucet()
Dim i as byte
For i=1 to 25
Sucet = Sucet + Val(Controls("PRZ" & i).Caption)
Next i
End Function
Oblíbený formulář Faktura byl vylepšen a rozšířen.

Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.