S tím jsem se potkal a "nějak" jsem to vyřešil. Ke své spokojenosti, ale už si nepamatuji, jak. Zkusím pohledat ve svém archlívu .
Jen si matně vzpomínám, že vzorce na listu porovnávaly jinak, než to dělal VBA.
Moje zkušenost s FollowHyperlink říká, že se po zavření zavolané aplikace vrátím automaticky do sešitu, odkud jsem hyperlink zavolal. Asi jsem nepochopil, v čem je problém.
A proč si ve vyhledávači sám nezadáte heslo "excel formulář" ,případně "excel userform"? Jako první položka v českém seznamu mi vypadla
http://office.lasakovi.com/excel/vyvojar/ovladaci-prvky-formulare-excel/
což je docela hezký popis vašeho problému.
Pro textové popisy kratších stabilních seznamů už léta používám funkci VBA, která se volá pořadovým číslem položky v seznamu. Pro názvy měsíců by ta funkce mohla vypadat následovně:
Function Mesice(Cislo As Long) As String
Dim Text As String, Seznam As Variant
Text = "Měsíce: Leden Únor Březen Duben Květen Červen Červenec Srpen Září Říjen Listopad Prosinec"
Seznam = Split(Text) ' Split má LBound=0, proto do jeho 1.položky dávám význam seznamu
Select Case Cislo
Case 1 To UBound(Seznam): Mesice = Seznam(Cislo)
Case Else: Mesice = "?????"
End Select
End Function
Podle tohoto mustru si každý může vyrobit obdobnou funkci pro svůj vlastní seznam.
Omlouvám se, ten "někdo" s vloženým sloupcem L jsem byl já. Původně jsem své vzorečky vkládal do Listu1, pak jsem si všiml skrytých sloupců a odstěhoval jsem se na List2. Bohužel jsem špatně zrekonstruoval List1, a on pak blbě počítal . Nedošlo mi, že jsem to spáchal já...
Mám pocit, že jsem na List2 ukázky dal řešení bez pomocných sloupců, které je navíc v souladu s kontrolními hodnotami pro požadované výsledky.
Emicko, a jak si představujete, že si s tím poradí někdo, kdo neví, jak ten váš formulář vypadá? To si ho máme vycucat z prstu? Prostě pošlete, jak formulář vypadá a co a v jakém pořadí buněk z něj se má "čas od času" zapsat na ten druhý list. Jinak s tím příkladem, který jsem vám poslal, byste už tu úlohu měla být schopná zvládnout sama.
Jsem v lehkém šoku! MonthName(3) má u mne opravdu hodnotu "březen", a ne "march", jak jsem automaticky předpokládal. Nevzpomínám si, která jiná funkce VBA vrací rovnou lokalizovanou podobu. Snad jen vlastnost FormulaLocal, ale tam si o to Local musím říct...
Info pro Merlina99 & spol: vzhledem k plné vybavenosti Windows pro komprimaci ZIP budu nahlížet výhradně do příloh v tomto formátu (co se týká zasílání sešitů). V tom se přizpůsobím Marjankajovi. Důvodem je to, že nemám v úmyslu instalovat si u sebe žádné speciální rozbalovací programy pro .rar, .tar, ani .7z.
Zadání je neurčité v tom ohledu, že není zřejmé, co rozhoduje o výběru buněk a jejich pořadí v tomto nesouvislém výběru. Napsal jsem ukázku, v níž o vybraných buňkách a jejich pořadí v přenosu rozhoduje individuálně použité pořadí jejich ručního výběru. Navíc jsem přidal čistící proceduru pro List2, která z pilnosti minimalizuje UsedRange Listu2.
Nechtěl jste náhodou něco takového, co je na Listu2 v ukázce? Buňka B2 se plní s ověřením ze seznamu možností.
Změna hodnoty v B2 vyvolá událost Change, která si podle vybrané možnosti v B2 nastaví potřebnou výšku a šířku buněk, kterou pak promítne do řízené oblasti.
Tak, jak je ta ukázka napsaná, žádné hodnoty v A1:A2 nepotřebuji. Stačí rovnou testovat obsah B1, a to jenom když se B1 změní:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Velikost As Single
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
If Range("B1") = "malá" Then Velikost = 50 Else Velikost = 100
With Range("D10:H20")
.RowHeight = Velikost: .ColumnWidth = Velikost
End With
End Sub
Trochu mne jenom zaráží ta šířka buněk. Já mám standardní výšku buněk = 15 a šířku = 8,43. Ale tak ta ukázka zní
Obdivuji to, že se vlákno dočkalo 12 odpovědí bez ukázky toho, o co vlastně tazateli jde. Když se neumím srozumitelně zeptat, mám na to alespoň ukázat prstem!
Rozhodl jsem se udělat si inventuru tématu. To ostatně dělám vždycky, když narazím na (pro sebe) nové věci. V první řadě jsem si napsal testovací úlohu na to, co vlastně vzniká při ťukání do kláves, když plním TextBox. Výsledkem je pro mne poznatek, že pro kontrolu plnění TextBoxu po znaku je rozumné zásadně používat KeyPress, nikoliv KeyCode. Druhý poznatek z tohoto testu je nalezení třídy KeyCodeConstants, která umožňuje do textů pohodlně vkládat nejrůznější speciální znaky (včetně řídících).
Následně jsem si dal do pořádku rutiny pro plnění TextBoxů formátovanou informací. Po léta jsem to řešil případ od případu a vždycky jsem to dost pracně ladil. Tak jsem to vzal z gruntu a vnesl jsem si do hry dostatečný a jednotný řád. Kontrolu obsahu TextBoxu provádím při události Exit, a to pokusem o nastavení předepsaného formátu. Filtruji vše, co pokládám za užitečné odfiltrovat a v kladném případě změním obsah TextBoxu podle tohoto formátu. Pokud při tom narazím, prohlásím vstup za vadný a nedovolím TextBox opustit. Výsledkem je, že obsah TextBoxu je potom vždy korektní a automaticky zpracovatelný v dalších fázích programu.
Jak test kláves, tak vzorový formulář pro sběr formátované informace jsou obsahem sešitu v příloze.
eLCHa: Win 7 - v pozdějších to bude podobné
Pravé tlačítko - Odeslat - Komprimovaná složka (ZIP)
Zase jsem chytřejší! To jsem opravdu nevěděl. Ověřil jsem a funguje mi to! Do možnosti Odeslat jsem se nikdy nepodíval .
Pro Marjankaj: potvrzením nabídky Zobrazit stahované soubory získávám inteligentní způsob pro prohlídku zipu, který je "skoro" přímý .
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.