Příspěvky uživatele


< návrat zpět

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

Nebývá časté, aby nápověda přímo od výrobce produktu obsahovala chyby. V případě nápovědy pro VBA v Excelu to však není tak úplná výjimka. Zejména postihuje jinak skvělý nástroj, kterým je ObjectBrowser, na který je čím dál tím menší spolehnutí. Je to škoda; zažil jsem dokonce časy, kdy celá nápověda pro VBA mluvila česky. Kde ty zlaté časy jsou ?!
Před chvílí jsem narazil na chybu v popisu metody Range.Sort pro vlastnost Orientation. Správně platí, že vlastnost určuje, zda chceme třídit data ve sloupcích (Orientation:=xlSortColumns - setřídí se řádky) nebo v řádcích (Orientation:=xlSortRows - setřídí se sloupce).
Popis pro uvedenou vlastnost je v nápovědě vadný, nenechte se proto mýlit - viz přiložený screen shot.

Píšete to hrozně složitě. Např. "meziobjekt" .Cells je tam nejspíš naprosto zbytečný. Když si napřed nadefinujete oblasti Zdroj a Cil jako Range, můžete pak napsat:
Zdroj.Copy: Cil.PasteSpecial xlPasteValues

Bez dlouhého zkoumání:
- metoda Copy pro objekt Range přenáší buňky včetně formátů; v tom smyslu byste neměl mít s naformátováním přijímající oblasti problém;
- pokud se chcete zbavit vzorců ze zdrojové oblasti, rozložte kopírování na dva kroky: (1) metodou Copy naplňte schránku, (2) metodou PasteSpecial obsah schránky přeneste do cílové oblasti; PasteSpecial se umí vzorců zbavit a buňkám formátování zachovat.

Vážený pane bedho, ve svém dotazu jste napsal: "...požaduje otevření odkazovaného excelu. Tato vlastnost mi přijde poměrně nesystémová...". Z toho lze usoudit, že o zpracování dat máte hodně zkreslené představy, protože získávání hodnot ze zavřených souborů se velmi příčí zásadám bezpečnosti dat. Neznám jinou oblast kromě tabulkových procesorů, kde by to vůbec bylo možné. Takže to, co jste chtěl, se nachází na samém pomezí toho, co je přípustné s daty dělat.
Za váš (a nejenom váš) problém ale pokládám, že si vůbec neuvědomujete, že byste se měl ptát tak, aby vám bylo rozumět. Na tomto fóru dostáváte odpovědi od lidí, jejichž čas je škoda utrácet luštěním něčeho, co nejste stavu popsat. Kdybyste takto připravený šel na právní poradu, kde každá započatá čtvrthodina stojí pět set, asi byste si své dotazy lépe promyslel. Když to ovšem máte zadarmo, proč byste si dělal násilí, že?

Za dodatečnou přílohu bych palec nahoru nedal. V podobných případech by měla být příloha samozřejmostí. Poskytnutí vhodné rady by totiž nemělo vyžadovat věštecké schopnosti pro správnou reakci.
Očekávat, že pro daný případ bude možné napsat "rozkopírovatelný vzorec", svědčí o nepochopení, co Excel při rozkopírování dělá: neděje se totiž nic jiného, než že se "tupě" rozkopíruje zdrojový vzorec v podobě R1C1. V tom spočívá genialita i omezení pro možnosti kopírování vzorců. V tomto schématu se prostě jméno souboru měnit nemůže!
Přijde mi velmi nesystémové, pokud autor příspěvku něco takového od Excelu očekával.

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.


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

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28