Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

Tak jsem záměr ještě promyslel a trochu přehodnotil. Vpřípadě, kdy by měl vzejít již existující název listu, by se přejmenování neuskutečnilo a makro by zobrazilo MsgBox se zprávou: "List s názvem JmenoMesice již existuje, a proto jej nebylo možné použít znovu pro tento list".
Ale nefunguje mi ten Format(DateSerial... Kde je zakopaný pes?'Přejmenování listu podle změny v buňce B6
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Range("B6")
Dim JmenoMesice
If Target = "" Then Exit Sub
Set JmenoMesice = Format(DateSerial(rok_vykaz, Target, 1), "mmmm")
Application.ActiveSheet.Name = JmenoMesice
Exit Sub
End Sub
rok_vykaz je v sešitě definovaný název, odkazující na buňku v jiném listu.

Edit: Po úpravě už je to OK:'Přejmenování listu podle změny v buňce B6
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Range("B6")
Dim sh As Worksheet
Dim jmenoMesice As String
For Each sh In ActiveWorkbook.Sheets
If sh.Name = jmenoMesice Then
MsgBox "List s názvem JmenoMesice již existuje, a proto jej nebylo možné použít znovu pro tento list."
End If
Next sh
If Target = "" Then Exit Sub
jmenoMesice = Format$(DateSerial(rok_vykaz, Target, 1), "mmmm")
Application.ActiveSheet.Name = jmenoMesice
Exit Sub
End Sub
Zakomponováno ošetření pokusu o použití stejného názvu pro list. Je to ale nefunkční...

Teoreticky by stačilo 12 listů, 1 pro každý měsíc, dopředu nachystaných na celý rok. To, že by pro jeden kal. měsíc vzniklo více listů, je spíše výjimka, než pravidlo, a když už, tak určitě ne víc jak 2, a to prakticky v případě potřeby "vyrobit" z nějakého důvodu alternativní verzi výkazu k jednomu měsíci...

To Stalker: Tak slavím triumf s Ribbonem na vlastním pásu karet. Horko těžko, ale podařilo se. Děkuji za inspiraci, pomoc a nasměrování 1

Zdravím vespolek. Prosím o pomoc s úpravou makra níže (mám vloženo v modulu), které přejmenuje aktivní list na základě změny hodnoty buňky B6 v tomtéž listu. Jedná se o číslovku 1 až 12 označující kal. měsíc. Změna hodnoty se uskuteční ručně uživatelem. Těchto strukturou stejných listů bude v sešitě postupně přibývat kopírováním vzorového listu. Potřebuji do makra přidat ošetření pro situaci, kdy by mělo dojít ke kolizi názvů, tzn. stejná hodnota v buňce B6 u více listů. Řešení si představuji takové, že v případě, kdy se v aktivním listu vyskytne v buňce B6 hodnota již existující v jiném listu, přidá se do názvu listu k hodnotě buňky B6 navíc pořadové číslo. Pro příklad: první list s výskytem hodnoty B6=3 bude pojmenovaný "3", druhý list s výskytem hodnoty B6=3 se pojmenuje "3(1)" atd.Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = Range("B6")
If Target = "" Then Exit Sub
Application.ActiveSheet.Name = VBA.Left(Target, 31)
Exit Sub
End Sub

Líbilo by se mi, kdyby se ten název listu (kal. měsíc) konvertoval na slovní název, tedy podle uvedeného příkladu místo "3" by byl "březen", místo "3(1)" by byl "březen(1)". Bylo by asi jednodušší, než komplikovat makro, kdybych měl v jiné (třeba skryté) buňce tu transformaci čísla měsíce na jeho slovní pojmenování provedenou a použila by se pro název listu adresa této buňky.

Podněty jsou to jistě rozumné. Sám mám v hlavě několik myšlenek na vylepšení - pro funkčnost, blbuvzdornost i uživatelský komfort.
Jenomže jsou to zatím vize, posouvám to kupředu po kouskách. Hlavně proto, že moje schopnosti ve vba jsou dost limitní. To, co je zabudováno v představené verzi aplikace, je dílem několikaletého vývoje a do značné míry díky ochotným borcům této komunity.

Přikládám ostrou verzi evidence v podobě, jak ji obdrží uživatel. Listy jsou zamčeny (bez hesla), aby bylo patrné, co je pro uživatele dostupné. Ovšem nejsem si jist, zda to tady budete mít chuť, čas a trpělivost, vzhledem ke složitosti aplikace a tím náročnosti na orientaci, se s tím zabývat.

Stalker napsal/a:

To přidání tlačítek na pás karet se provádí úpravou xlm toho konkrétního souboru pomocí "Custom UI Editor" (Koukni na youtube). Takže ono nastavení cestuje spolu se sešitem.
Díky za nasměrování. Vypadá to zajímavě, i když pro mě realizace představuje poněkud vysoký level. Našel jsem k tomu několik docela polopatických návodů. Zatím jsem se ale nedobral zdroje, kde bych Custom UI Editor stáhnul a taky jsem zcela nepochopil, jak se nainstaluje. Jestli s tím máš zkušenosti, můžu poprosit ještě o rady v tomto smyslu?

To Stalker: z reakce jsem se zarazil. Přiznávám, že jsem to neověřoval. Jenom jsem usoudil, že když provedu nastavení přidáním příkazu na pás karet, provedu to v aplikaci Excel na svém počítači, a toto nastavení navíc bude trvalé, a bez ohledu na sešit, který mám zrovna otevřený.
Když sešit, u kterého chci zařídit, aby to fungovalo jak jsem popsal, poskytnu uživatelům, tak u nich v jejich Excelu se to nastavení na pásu karet neprojeví. Budou mít jenom sešit s makrem, které nebudou mít jak spustit... Pletu se?

Dobrý den,
hledám řešení pro vytváření kopií ze skrytého listu, co by "šablony formuláře", jako nových listů ve stejném sešitu, pomocí makra spouštěného tlačítkem vytvořeného v nové skupině příkazů na pásu karet (lepší způsob mě zatím nenapadl).
Mám zatím následující proceduru (možná jí k dokonalosti něco chybí - jsem přes makra začátečník) vloženou do modulu v předmětném sešitu:Sub Kopie_EF()
Dim ws As Worksheet
List2.Copy After:=Sheets(Sheets.Count)
Set ws = ActiveSheet
End Sub
Toto řešení s příkazem na panelu nástrojů ale nebude dostupné u jiných uživatelů, kteří tento sešit obdrží a budou s ním pracovat. To jsem vytvořil vlastně jenom v Excelu na svém počítači. Potřebuji řešení univerzální. Příkazové tlačítko, které by se umístilo na stávající viditelný list by bylo řešením, kdyby na listu na něj bylo místo.
Prosím, napadá někoho nějaké elegantní řešení?

Dingo napsal/a:

To bude náročný úkol... ...udělat si jedno makro, které mi spraví v listu veškeré potřebné formátování a pod. a zachová hodnoty....
Určitě podnětná myšlenka. Nedokážu posoudit, jak náročné by bylo sestavit makro, které by ošéfovalo formátování v celém formuláři, resp. v oblastech, kde zasahuje uživatel, a u všech listů v sešitě s tímto formulářem. Podmíněné formátování např. nastavuje barevnou výplň u řádků, reprezentujících nepracovní dny v týdnu. Co list s formulářem, to kalendářní měsíc. Chtěl bych, což taky ještě nemám vyřešeno, mít formulář na skrytém listu jako šablonu a aby si uživatel mohl listy s formulářem sám postupně generovat, dejme tomu příkazovým tlačítkem umístěným nejlépe na každém listu v sešitě (je tam i viditelný list se vstupními údaji, které vstupují do výpočtů v listech s formulářem).

Zdravím, potřebuji vyřešit makrem násl. úlohu. Sešit obsahuje dejme tomu 2 až cca 13 listů. Požadovaná záležitost se má týkat z toho všech listů kromě prvního. Ve stejné definované oblasti ve všech těchto listech u buněk potřebuji nastavit:
1. nepovolení funkce vyjmutí hodnoty (především formátu buňky)
2. nepovolení přesunutí buněk tažením (opět přesouvá i formátování)
3. nepovolení rozkopírování obsahu buněk tažemím (rovněž se tak děje vč. formátování)
4. povolení funkce vložení pouze hodnot bez formátování
Bylo by asi vhodné, aby bylo makro součástí listu, kde má učinkovat, nebude tak problém s určením, kterých listů v sešitě se má týkat, listy totiž může uživatel přejmenovat a může jich být různý počet.
Původně jsem chtěl řešit zadávání hodnot přes InputBox se zamčeným listem, ale vzhledem k nastavenému poměrně komplikovanému ověření dat pro zadávané hodnoty do buněk v oblasti jsem od toho zatím upustil. Jsem si vědom, že při vložení hodnoty do buňky s nastaveným ověřením dat jinak jak z klávesnice, nebude ověření funkční. Ale zase nechci úplně zakázat kopírování a vkládání hodnot. Zatím bude stačit, když mi uživatel (byť neúmyslně) nebude ničit formátování ve formuláři (vč. podmíněných formátů). Listy jsou zamčené a buňky určené k vyplňování jsou odemčeny.
Prosím o pomoc. Díky.

elninoslov napsal/a:

VyskúšajtePříloha: 55846_zaskrtnuti-msg.zip (69kB, staženo 2x)
To je přesné... Děkuju moc.
Hezké Vánoce

Elnino, je to brilantní! Moc děkuju. I za ten popis. Muselo to dát dost práce. Jsem tvůj dlužník. Netušil jsem, že to bude až tak složité.
Pokud jde o obranu proti smazání listu "Vstup", v plnohodnotné variantě je tam množství konstant i vypočítaných globálních proměnných, které se načítají do ostatních listů. Do teď (několik let) s tím v předchozích verzích problém nebyl (že by si list někdo smazal) tak to pustím z hlavy.
Teď mě čeká tedy překlopit model do plnohodnotné aplikace, doufám, že to zvládnu.
Ještě taková věc. Ten údaj v MsgBoxu o počtu zaškrtnnutých buněk, byl by problém počítat jen ty hromadně zaškrtnuté tlačítkem? Tedy bez těch, co už zaškrtnuté byly před tím? Tak jsem to původně myslel. Celkový počet zaškrtnutých bude totiž vyčíslen tak jak tak v sumarizační buňce.

https://wall.cz/index.php?m=topic&id=55606

elninoslov napsal/a:

Nerobili sme to už náhodou???
Ahoj, chápu, že zažíváš tak trochu Déjà vu. Ano řešili jsme a vyřešili (tedy ty jsi vyřešil) část toho zadání. Ta druhá část, co je předmětem tohoto nového tématu, ale zůstala nevyřešená. Řekl jsem si, když jsi ty, ani nikdo jiný, pak už nereagoval, že zkusím založit nové téma. Pokoušel jsem odvodit řešení od tvého makra, ale jelikož jsem ty jednotlivé kroky nerozklíčoval, tak mi to nešlo.


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje