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
pr.
Stačil by aj kratší riadok:
List1.Columns(2).Hidden = Not ChBox2000
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.