Úvodní stránka · Fórum · Ke stažení · Odkazy · Links (EN, DE, CZ, SK) 10. září 2010, Irma
Menu
Úvodní stránka
Časté dotazy k Excelu
Fórum
Kategorie článků
Databanka kódů
Ke stažení
Svět Excelu v RSS
Odkazy
Kontakt

Excel - funkce na listu
Excel - funkce VBA
Excel - klávesové zkratky
Excel - znaky, klávesnice
Excel - standardní barvy
Excel - slovník menu
Excel - konstanty
Excel - technické údaje
DVD Servis Office
Excel menu 2003 (Ribbon)
Offset Statistic

Chat
Sponzorované odkazy
Přihlášení
Přezdívka

Heslo



Nejste členem?
Zaregistrujte se co nejdříve.

Zapomněli jste heslo?
Nechte si poslat nové.
Kdo je online
Hosté online: 2
Žádný člen není online

Registrovaní členové: 537
Neaktivovaní členové: 47
Nejnovější člen: Veverka
Pohotovost Excel
Excel VBA - první pomoc

ICQ status

Skype
Hry online
Sudoku
Sudoku
Sudoku
Sudoku
Excelplus.NET
Excelplus.NET - RSS 0.91 spampoison.com
Google Pagerank - excelplus.netGoogle Pagerank Antispam.er.cz
Statistiky

Čist téma

Excel VBA - Excelplus.NET | Excel | Visual Basic for Applications (VBA)
Autor Komponenta kalendař do buňky
jusepe
Člen

Obrázek uživatele

Příspěvků: 64
Založen: 29.12.07
Přidán 20.02.2009 18:32
Jak k vybranym bunkam (např. sloupec F a G) každého řádku pripojit komponentu kalendař? Pomoci vyberu v komponente kalendář se do bunky vepise hodnota typu date. Viz. obr. který neni z excelu.

Děkuji za jakýkoliv nákop..
jusepe přiložil(a) následující obrázek:


Upravil jusepe, 20.02.2009 19:57
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
ad excel
Hlavní administrátor

Obrázek uživatele

Příspěvků: 187
Založen: 27.11.06
Přidán 21.02.2009 10:00
Tak jednou z možností je použít komponentu Kalendář z Office, sledovat události Selection_Change a zobrazovat prvek v levém horním rohu buňky, která leží vpravo od místa vložení (vlastnosti Top, Left). Já bych ale na tomhle místě uvedl jiné řešení:

http://blogs.msdn.com/excel/archive/2007/08/01/sam-radakovitz-on-date-pickers.aspx

Měsíce budou česky, ostatní popisky anglicky - viz příloha.


Petr Pecháček
ad excel přiložil(a) následující obrázek:

196760265 pechacek@excelplus.net http://excelplus.net Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
jusepe
Člen

Obrázek uživatele

Příspěvků: 64
Založen: 29.12.07
Přidán 21.02.2009 12:39
Super, děkuji za tip.
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
jusepe
Člen

Obrázek uživatele

Příspěvků: 64
Založen: 29.12.07
Přidán 21.02.2009 13:48
Prubnul jsem zminovanou komponentu (doplnek) a rozhodne je vymakaný, můj obdiv jeho autorovi.
Pro me ucely je nepouzitelny. Používam jěště svůj doplněk s ovládácím algoritmem pro sešit a něco se mi navzájem tluče. Při změně hodnoty v buňce typu Date se zacyklí samradDatePicker.xla. V příkladu na odkazu vše funguje.

Přikloním se k prvně zminované variantě.
Pomohl by mi nějaký příklad. "zobrazovat prvek v levém horním rohu buňky" mi je zatim cizí. Ostatní bych snad zvládl.

Děkuji

P
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
jusepe
Člen

Obrázek uživatele

Příspěvků: 64
Založen: 29.12.07
Přidán 24.02.2009 21:21
Zkoušim umisťovat formulář s komponentou kalendář podle active buňky. Pouze poloha bunky nestaci, je treba korigovat podle okna excelu a samotného aktivního okna. Nasel jsem par navodu jak pomoci "handle okna - hWnd" najit info o oknu, bohužel ve VBA nefunguje.
Stačil by mi nějaký utržek kodu, zrejme s API, kde se toto řeší ve VBA.

Může někdo pomoci...

dik
Upravil jusepe, 24.02.2009 21:23
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
ad excel
Hlavní administrátor

Obrázek uživatele

Příspěvků: 187
Založen: 27.11.06
Přidán 25.02.2009 20:55
Tak trochu jako reakce na toto téma vznikl článek a doplněk - viz http://excelplus.net/news.php?readmore=66


Petr Pecháček
196760265 pechacek@excelplus.net http://excelplus.net Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
Bath
Člen

Příspěvků: 84
Založen: 04.05.09
Přidán 05.05.2009 18:20
Ohledně zobrazování userformu u aktivní buňky,
jak řešíte případ, kdy je ještě okno rozděleno
na příčky?
V případě rozdělení by postačila korekce o sílu
příček... Lze šířku nějak zjistit?
GetSystemMetrics? Jaká konstanta?
Při rozdělení lze vidět v každém rozděleném pane
aktivní buňku a vezme se v úvahu buňka v prvním
rozděleném pane... Jak dospět ke skutečně aktivní
buňce v aktivním pane a její poloze?
Jsou-li příčky zmrazeny pomocí FreezePanes,tak je
výpočet polohy chybný ani neodpovídá ActivePane
pro vybranou buňku... Máte s tím někdo zkušenost?
Přes ActiveWindow.Panes(i).VisibleRange vrací Left
i Top pro každé Pane 0 ...
Jak tedy získat pozici pro jednotlivé Pane?
Lze předpokládat, že počet Panes bude pro nedělené
okno vždy pouze 1 a pro rozdělené nebo 2 a 4 ?


Kalendář je velmi pěkný, ale pokud první týden roku není
zrovna jedna, tak se týdny načítají 52 či 53 a dále 54 ...
Zobrazení státních svátků, resp. barevné rozlišení labelů
podle pracovní den ,sobota, neděle či svátek by bylo milé
vylepšení... Je fakt nádherný a poslouží pro další inspiraci.
S případnou funčnostností klávesnice bude zřejmě nutné
zachytávat klávesy u všech prvků?
Zajímalo by mě i zobrazení userformu jako popup menu,
nebyl by modální a při ztrátě fokusu by se zavřel. Bohužel
eventy aplikace jsou myslím pro tento účel nepoužitelné
a pokusy se subclasing a zachytáváním wm_appactivate
jsou nezdárné... Zřejmě to prostě nejde?
Jak lze vyřešit ukládání nastavení kalendáře, například bude
česká a slovenská verze apod. Kam uložit nastavení?
Nejlépe přímo k sešitu doplňku, nelze využít customdocument
properties, jsou u doplňku vlastní vlastnosti dostupné?

Děkuji za případné postřehy a snad to má již Pepík
(jusepe) ošéfovaný, budu ráda za každou pomoc,díky.
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
ad excel
Hlavní administrátor

Obrázek uživatele

Příspěvků: 187
Založen: 27.11.06
Přidán 06.05.2009 18:54
Stručně k mému doplňku:

1) Pozicování formuláře k buňce je docela alchymie (měrné jednotky, nemaximalizované okno, více oken, příčky, ...), viděl jsem už hodně sofistikované řešení, ale nebylo stoprocentní, když jsem ho zkoušel pod Windows Vista). Je to trochu boj s větrnými mlýny...

2) Státní svátky by bylo třeba ukládat (nejedná se o nic statického, už se opět projednávají změny na další roky). Pravděpodobně by jako úložiště posloužily skryté listy doplňku. Uvidím... Rozlišování na řekněme českou a slovenskou verzi .. mno :-)

3) Další barvení (státní svátky, víkendy) zvážím. Je potřeba stanovit jen priority barvení.

4) Zpracování coby "příručního formuláře" pro nahrazení klasických prvků (Calendar, DateTime Picker) právě testuji v jedné aplikaci na míru. Techniku práce zveřejním. Přikláním se ale k vytvoření komponenty ve VB6, kterou bude možné aplikovat pod VBA.

5) Číslování týdnu znovu otestuji.


Petr Pecháček
196760265 pechacek@excelplus.net http://excelplus.net Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
Bath
Člen

Příspěvků: 84
Založen: 04.05.09
Přidán 07.05.2009 10:01
1) Souhlasím, boj s větrnými mlýny...
Taky zobrazené či skryté záhlavi řádků a sloupců...
Vzdávám to...
Zobrazit userform na aktuální pozici myši v buňce?
To ale není tak pěkné...

2) Svátky krom velikonoc dány dle kalendářního data,
česká a slovenská verze byl jen příklad, ale uvažuji použít
vlastní vlastnosti pro ukládání nastavení, zobrazení apod.
Případně i pro uložení svátků s možností je upravit či přidat
ve vlastnostech souboru na kartě vlastní

3) Priority stanoveny, sobota zelená, neděle a svátek červená
dle plánovacího kalendáře...
Zobrazuji celé týdny doplněné o dny z předchozího a dalšího
měsíce, používám světlejší a tmavší odstín zelené a červené
a šedou a černou pro neaktivní nebo aktivní měšíc

4) Těším se na nové tipy, podobnou vb6 "příruční" záležitost
používám, upozorňuje na svátky a narozeniny kolegů :-)

5) Pro číslování týdnů lze využít Format plus nastavená konstanta
pro první čtyři dny v roce

Děkuji za reakci a mnoho zdaru všem
(v boji s větrnými mlýny) :-)
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
Bath
Člen

Příspěvků: 84
Založen: 04.05.09
Přidán 03.03.2010 18:46
S odstupem času chci přidat zajímavé odkazy
týkající se zobrazení UserFormu u buňky.

Form Positioner :
http://www.cpearson.com/excel/FormPosition.htm
Support for split windows and frozen panes will be added in a later release...

Positioning a UserForm Over a Cell :
http://www.dailydoseofexcel.com/archives/2007/08/30/positioning-a-userform-over-a-cell/
Stáhněte a zkuste: RangePos Beta3.zip
Zdá se, že to funguje i pro rozdělená okna, jak bylo zmíněno dříve.

...
Snažím se pro podobnou potřebu zobrazit u aktivní buňky
Shape či OleObject, ale zjištuji, že jen nastavit Placement
na xlMove nestačí...
Při změně šířky sloupce se objekt přesune, ale při změně
šířky řádku je jeho pozice beze změny, nevíte někdo proč ?
Nějaká vlastnost, která určí, jak se má objekt přichytit ?
Asi to nebude o moc jednodušší, jak se zprvu zdálo...
Vypadá to na událost při změně šířky řádku aktivní buňky. :-)
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
jusepe
Člen

Obrázek uživatele

Příspěvků: 64
Založen: 29.12.07
Přidán 09.03.2010 19:08
"Positioning a UserForm Over a Cell :"
Velice povedene.
Pepík to moc nevymakal, akorat mam form kalendaře jako nemodalni. S temi tydny to blbne jen prvni týden v roce, jinak to beha suprove, bohate mi postacuje.
Jinak se mi osvedcil nasledujici trapny ale funkční zpusob přes form, neco na zpusob toho druheho odkazu:
1. udalosti pravý klik ulozim polohu kurzoru (api GetCursorPos)
2. v kontext. menu spustim proceduru
3. form umistim podle ulozene polohy (nutny prepocet px na pt)

a je to.
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
Bath
Člen

Příspěvků: 84
Založen: 04.05.09
Přidán 10.03.2010 09:40
Zdar Pepiku, děkuji Ti za odezvu, je to fakt pěkné,
ale taky rezignace na veškeré počítání, používám
stejně trapný způsob s umístěním formuláře na x, y
uložených před pravým kliknutím v listu. Super, stačí.
Stejným způsobem lze zobrazit form i po doubleclick
je-li v buňce datum, docela užitečné.
Lze to maličko vylepšit pohlídáním, aby form nevylezl
mimo plochu (SPI_GETWORKAREA), jinak to má jednu
vadu na kráse pokud se menu zobrazí z klávesnice, pak
se objeví kdekoli na uložených souřadnicích posledního
pravého kliknutí... Nemilé, co?
Zatím to neřešim, třeba budeš vědět, tak to poopravim.

Možná někdo bude vědět, jak na zachytávání klávesy
zobrazení menu, případně také F2 pro zobrazení formu?
Bez zobrazení po F2 mi vyhovuje, lze upravovat klasicky
údaj v buňce např. pokud obsahuje ještě časový údaj,
ale odchytit zobrazení kontextového menu u buňky
z klávesnice by bylo zajímavé...

Poklona autorovi, Tobě a pozdrav všem! :) Jako v tv...
Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
Bath
Člen

Příspěvků: 84
Založen: 04.05.09
Přidán 12.05.2010 18:21
Přikládám další příspěvek, snad dobrý tip...

Zobrazení pro případ, kdy je v buňce datum
nebo pro prázdnou buňku s formátem
datumu (pro varianty dm + my + dmy) :

Kód VBA
  1.  
  2. If IsDate(ActiveCell) Or DateFormatedCell Then
  3. Module1.SpustiKalendar
  4. EndIf
  5.  


Pokus zjištění formátu prázdné buňky:
Kód VBA
  1.  
  2. Function DateFormatedCell() As Boolean
  3. Dim bdf As Boolean, sdf As String
  4. On Error GoTo Function_Exit
  5. bdf = (CBool(InStr(ActiveCell.NumberFormat, "d")) _
  6. And CBool(InStr(ActiveCell.NumberFormat, "m"))) Or _
  7. (CBool(InStr(ActiveCell.NumberFormat, "m")) _
  8. And CBool(InStr(ActiveCell.NumberFormat, "y"))) Or _
  9. ((CBool(InStr(ActiveCell.NumberFormat, "d")) _
  10. And CBool(InStr(ActiveCell.NumberFormat, "m")) _
  11. And CBool(InStr(ActiveCell.NumberFormat, "y"))))
  12.  
  13. If Not bdf Then Exit Function
  14. sdf = Format(Date, ActiveCell.NumberFormat)
  15. DateFormatedCell = IsDate(sdf)
  16. Exit Function
  17. Function_Exit:
  18. On Error GoTo 0
  19. End Function
  20.  


Lepší řešení? Nějaký nápad?
Jak zjistit je-li formát prázdné buňky datum?

...
Další kalendářní výzkum :) včetně kódu
neznámého autora naleznete zde:
http://www.vbnet.cz/forum-tema--3801-vba_spusten_237_po_kliknut_237_.aspx

Také tam najdete, jak si vytvořiti třídu
pro události excel aplikace...

Poslat soukromou zprávu
Autor RE: Komponenta kalendař do buňky
Premek
Člen

Obrázek uživatele

Příspěvků: 255
Bydliště: Ostrava
Založen: 11.04.07
Přidán 14.06.2010 11:47
Kouknete se tady, mozna ze to jeden z nas vyresil to pozicovani
http://pandora.idnes.cz/part/2010/6/5625 - reseni

http://pandora.idnes.cz/part/2010/6/2615 - popis problemu


Nikdy neni tak zle, aby nemohlo byt jeste hur :-)
Office 2007 EN & Office 2003 CZ & Office 2000 EN & Office 2010 EN
Upravil Premek, 14.06.2010 11:49
303146945 http://www.excelvba.estranky.cz Poslat soukromou zprávu
Přejít na:
... nejlépe se zpracovávají tabulky mléčné čokolády