Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  18 19 20 21 22 23 24 25 26   další » ... 37

Pokusím se do toho zmateného zadání vnést svůj vlastní pohled na možnosti manipulací s řádky a sloupci ve vybrané oblasti buněk. Jde o mou laboratorní aplikaci z února 2009. Při troše dobré vůle by v ní mohl zadavatel najít inspiraci pro řešení svých potřeb.

Představa, že po výběru oblasti se tato oblast překopíruje na jiný list ve změněném pořadí sloupců, je na této obecné úrovni velmi nedomyšlená. Aby byla použitelná, potřebuje mít nejméně dva doplňkové parametry: cílové místo pro přemístění dat a způsob změny v uspořádání sloupců. Pak by už bylo možné napsat proceduru, která by takovou operaci realizovala.

Vše stojí a padá s postojem zákazníka k makrům. Pokud je zásadně negativní, bude opravdu obtížné najít nějaké rozumné řešení. Když bude zákazník podezíravý, zamítne i řešení pomocí VBScriptu, protože mu také připadne rizikové (každý program ve VBScriptu je vlastně makrem). Musím znovu zopakovat, že negativní vztah k makrům vyvolává záměrně sám Microsoft, aniž by proto byl jakýkoliv významný důvod.
Víckrát jsem byl před tento problém postaven. V řadě případů jsem uživatele přesvědčil, že se maker bojí zbytečně. A tam, kde to nešlo napřímo, tam jsem šel oklikou přes osobní sešit maker, případně přes doplněk. Tyto nástroje žádná varování o makrech nevydávají, takže zákazník nebyl před nimi nijak varován. Vlk se nažral a koza zůstala celá. Netvrdím, že to bylo zcela důsledné vůči makrům, zato zákazník dostal fungující aplikaci, která se o makrech nezmiňovala.
Svět si přeje být klamán.

Kombinace povoleného sdílení sešitu pro změny se současným zákazem maker je stav blízký pokusu o sebevraždu. Samo sdílení je mizerně zabezpečené, protože připouští datové kolize a bez podpory maker se z něj stává jízda na tygru. Kdo chce kam, až se ucho utrhne...

Čtěte prosím pozorněji! Elninoslov vám navrhuje, jak jednoduše vzorec s externím odkazem zadat. Po zadání začne váš sešit pracovat s externími odkazy do zavřených sešitů!
Pokud cizí sešit nemůžete otevřít ani při zadávání vzorce, můžete to udělat s ručním zápisem externího odkazu. To je ovšem o mnoho složitější, než jak vám poradil elninoslov. Ale samozřejmě - jde to!
Kdybyste ani tentokrát nerozuměl, kupte si za pár stovek učebnici Excelu, kde najdete, jak se to z ruky píše!

Obávám se, že pro ověřovací seznamy platí, že jejich starobylý původ nedovoluje měnit počet možností v nabídce. Posuvník (šoupátko) naopak pokládám za dobré řešení. Nevím, jak by bez něj šlo řešit nabídku z opravdu velkého množství možností.

Přímá kontrola vybrané oblasti pomocí události Worksheet_SelectionChange nepřichází v úvahu, protože byste tím "zabil" jakýkoliv jiný výběr buněk na listu. Lze si ale představit tlačítko, které by reagovalo na aktuálně vybranou oblast. Kontrola by pak mohla vypadat následovně:
If Selection.Columns.Count <> 8 Or Selection.Columns(1).Column <> 1 Then
MsgBox "Vadná oblast": Exit Sub
End If

Toto fórum se vzácně vyhýbá některým tématům (namátkou KT, DB, grafy, obrázky...). Z oblasti práce s obrázky posílám pro inspiraci ukázky vzhledu několika grafických aplikací ze své dílny. Inspirací pro jejich vznik byl vždy nějaký podnět z dotazů, na které jsem někomu odpovídal. Třebas na vás z mých ukázek taky vyskočí nějaká inspirace pro oživení prostředí Excelu.
Ukázka s dotykovou mapou dává šanci prezentovat spoustu regionálních informací v grafické podobě s použitím mých velmi rychlých procedur pro tvorbu hranic. Ukázka galerie obrázků zase dává šanci vytvářet paměťově úsporné obrázkové katalogy. A ukázka přesouvacího rébusu zase dokládá možnosti Excelu při manipulaci s grafickými objekty na ploše listu.
S tou přesouvačkou jsem před lety měl docela úspěch, když jsem jako vánoční pozdrav rozesílal rozstříhané rodinné obrázky, které si musel adresát sám poskládat. Pokud by vás taková myšlenka zaujala, stačí soukromě mi poslat vhodnou fotku (nejlépe formát pohlednice naležato). Když nebude velký nával, fotku rozporcuji a vložím do skládačky, kterou vám k vánocům věnuji. Zatím je dost času, abyste ji pak mohli použít jako přílohu ke svým vánočním pozdravům.

Zasloužíte si bobříka odvahy. Netajíte se tím, že nechcete jen poradit, ale rovnou lidi úkolujete, aby vám napsali makro! Dál hned chcete, aby vám ho ten hodnej trouba ještě rozvinul. A jistě to potřebujete do práce, kde vám za to zaplatí. Tomu já říkám správná dělba práce...

Přímý způsob zjištění mne nenapadá. Zkuste následující fintu: při otvírání sešitu (událost Workbook_Open) zkuste zapsat do všeobecně dostupné buňky jméno (nebo jeho přidělený nick) pro aktuálního uživatele. To se povede jen tomu prvnímu (ostatní uživatelé už to nedokážou). Tím bude vždy jasno, kdo právě velí. Zápis jména je ale nutno ošetřit On Error Resume Next, aby další uživatelé nedostávali chybové hlášky.

Mně to připadá, že chcete moc muziky najednou. Kdybyste do buňky LinkedCell přenesl vybranou možnost, mohl byste si pro ni zjistit pomocí POZVYHLEDAT řádek na zdrojovém listu a z jeho sloupců byste následně mohl čerpat potřebné hodnoty. Pro takový postup ani nepotřebujete prvek ActiveX, stačí obyčejný ComboBox pro list.

K nastavení zdroje pro seznam položek v samostatném prvku ComboBox z kolekce ActiveX nepotřebujete znalosti o VBA. V režimu návrhu umístěte prvek na list a k tomu si zavolejte službu Vlastnosti (vedle nabídky Režim návrhu). V ní vyhledejte vlastnost ListFillRange a do ní zapište oblast se zdrojovým seznamem,
např. List2!B10:B40
Pro úplnou funkci prvku je nutno zadat ještě vlastnost LinkedCell (např. E20), kam se vybraná možnost přenese.
Když pak vypnete režim návrhu a klepnete na pravý ukazatel v prvku, dostanete požadovanou nabídku.

Obsah TextBoxu je vždy a zásadně textový. Nelze dopředu nastavit, aby TextBox pracoval numericky. Pokud chci mít jistotu, že v textboxu není nenumerický obsah, měl bych při každém opuštění TextBoxu obsah testovat, aby v něm nemohly být nesmysly (událost Exit). IsNumeric je pro ten účel dobrý test. Pak bude jednoduché s takovou informací pracovat.

Se zavedením objektu tabulka (ListObject) vznikly pro třídění oblasti buněk na listu dvě třídicí syntaxe: metoda Range.Sort pro běžnou oblast na listu (jak jste ji mínil použít) a vedle ní metoda .Apply pro ListObject.Sort. Pokud je vaše tabulka tabulkou typu ListObject, musíte použít postup, který navrhuje Dingo.

Pánové xlnc a elCHa, oba jste geniální, ale na vzájemné plácání po zádech byste si mohli založit vlastní vlákno, nebo si zajít spolu na pivo! Nějak se mi ztratila souvislost s tématem vlákna...


Strana:  1 ... « předchozí  18 19 20 21 22 23 24 25 26   další » ... 37

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