;)
Mno dobrá ještě jeden pokus ThisWorkbook.SaveAs sSoubor
Set sh = ThisWorkbook.Sheets(Format(Day(dDen - 1), "00"))
sh.Range("I2").Value = dDen
Application.DisplayAlerts = False
For Each sh In sh.Parent.Sheets
Select Case sh.Name
Case Format(Day(dDen - 1), "00")
sh.Name = "01"
Case "SAKO"
Case Else
sh.Delete
End Select
Next sh
Application.DisplayAlerts = True
ThisWorkbook.Save
OK zkuste toto (dávám bez testu)ThisWorkbook.SaveAs sSoubor
Set sh = ThisWorkbook.Sheets(Format(dDen - 1), "dd")
sh.Range("I2").Value = dDen
Application.DisplayAlerts = False
For Each sh In sh.Parent.Sheets
Select Case sh.Name
Case Format(dDen - 1, "dd"), "SAKO"
Case Else
sh.Delete
End Select
Next sh
Application.DisplayAlerts = True
ThisWorkbook.Save
edit: ještě 2x upraveno ;))
@rotri
to samozřejmě lze, ale nějak nerozumím proč, když jsou ty listy stejné, jen se liší názvem
Ještě jedna malá úpravečka - po odstranění listů se ještě jednou uloží. Nechávám tam (na mně nezvykle) 2x uložení, pokud by se během odstraňování něco stalo, aby se neporušil starý měsíc. Asi by to v novém dnu chtělo vymazat i data, ale to už nechám na Vás.
Odeslaní příspěvku s přílohou opravdu zlobí :(
Zachování skrytého listu je už vyřešeno, není třeba nic dodělat.
Máte pravdu, dal jsem tam kontrolu a tou kontrolou jsem to zmrvil ;))
Nahrďte si proceduru (jejíž název taky není vypovídající, ale to je maličkost):edit: odstranil jsem kód, šetřím místo ;) - je v následujícím příspěvku v příloze
odesláno na 5. pokus :(
Takže jsem se na to koukl a trochu (hodně) jsem Vám to upravil. Pokud jsem něco špatně pochopil, tak se ozvěte.
1. tlačítko vytváří PDF - jen jsem zjednodušil
2. vytváří další list nebo nový soubor pro další měsíc - musel jsem předělat, aby správně fungovalo 3. tlačítko
3. tlačítko - vytváří výstup
Jak jsem psal dříve, používám skryté řádky. Tady jsem použil skrytý list, kde je tabulka i se vzorci. Tu zkopíruji. Obrovskou výhodu to má v tom, že při každé změně nemusíte měnit kód, jen si zobrazíte skrytou šablonu a tu upravíte.
o DATEDIF tu proběhla diskuze a v podstatě jsem si z ní vzal to, že raději nepoužívat ;)
http://wall.cz/index.php?m=topic&id=22184&page=3#posts
Sub test()
UserForm1.Show False
AppActivate Application.Caption
End Sub
"Mnohořádkové makro" pro takovouto úlohu určitě není správná cesta.
Pokud sem dáte ty dva soubory, tak Vám to někdo (nebudu konkrétní) za chvíli udělá. S trpělivostí není problém, ale s těmi přílohami (zabalte do zip a vložte jako jednu přílohu) to bude opravdu rychleji ;)
elninoslov napsal/a:
Ak vynásobím 1000*1000 dostanem OverFlow
Z 50 40?
Tak to jste to spíše zapomněl zamknout Vy a těch 10 to zamklo, abyste omylem nezměnil hodnoty ;))))
Protože nevíme, co si představujete pod pojmem složité makro a jak to Vaše složité makro vypadá tak odpověď je ano, dá.
Já to dělám tak, že formáty mám zkopírované ve skrytém řádku a z toho je pak tahám (kopíruji).
No tak pánové, na toto se asi neptal ;)) Nestrašte ho.
Jasně že, když někdo chce, tak si cestu najde. Ale polemizoval bych i o "lahko odomkúť" - pro někoho, kdo neví jak na to to zase tak lehké není a to je velká většina uživatelů.
Takže - v excelu můžete zakázat výběr buněk, tam je to jednodušší - podívejte se na možnosti zámku
S Wordem moc nepracuji, takže zkušenosti nemám. Zámek tam je, ale zda lze zakázat výběr textu nevím. Pokud tam ta možnost není, určitě to půjde pomocí VBA. Nebo možná ho ukládat v PDF (jako obrázek) a ten dát k dispozici místo originálního souboru - ale to je jen výstřel, nemám to vyzkoušené.
Detaily ať si dořeší ten, kdo to použije.
Máte v buňce existující adresu? Já tam dal www.seznam.cz a jede mi to.
Ohledně toho odkazu v názvu, tak to bohužel nefunguje při zavřeném sešitě - vrací #REF.
Takže jiná cesta je takováto
Přidat list Excel4Macro - já používám Mezinárodní list maker.
Do buňky A1 vložit=RETURN(COUNTA('cesta\[data.xlsx]Hárok1'!A2:A1000))a pak napříkladSub test()
Debug.Print Application.Run("Makro1!A1")
End Sub
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.