Tak už jen pro doplnění.
Problém je asi známý, leč vysvětlení se mi nedostalo.
Nalezení posledního řádku oblasti tímto zůsobem
Set r = ActiveSheet.UsedRange
Cells(5, 3) = r.SpecialCells(xlCellTypeLastCell).Row
vypočítá chybu (je-li tam xlThick)
Ron de Bruin to řeší následovně:
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
takže děkuji za vysvětlení nějakých mých (častých) chyb a s konstatováním že jsem objevil ameriku si připadám jako J. Cimrman.
Já to tušil, že z Select a Selection nebudete dvakrát nadšený (škoda, že ikony neobsaahují palce nahoru, určitě bych nějaký dostal) , přesto jsem na vaši odpověď čekal, to se přiznám a děkuji za ní. A říkal jsem si, jestli někdo bude reagovat, pak to bude eLCHa, bo se mu to bude líbit. Ale o to jestli je to hnus či ne nešlo, nešlo ani o to že mohu pracovat jen s určitou oblastí. Tu bych mohl ostatně makrem definovat, ale šlo mi o to, zda skutečně jen spojení UsedRange a ohraničení dělá tuto zmíněnou neplechu a jestli se s tím již někdo setkal a proč to je. Zjistil jsem to náhodou, když jsem použil orámování, moje oblíbené,(ale až po Select ) a najednou to dělalo něco jiného. A ani jsem to k ničemu nepotřeboval, jen jsem zkoušel SpecialCells a co to může a nemůže. V podstatě jsem došel ke stejnému závěru a to i s tím, že pokud by to měl být úmysl, muselo by se to projevit i do stran, ale proč?
=POSUN(Podrobná databáze!C14;0;3)
a nebo jsem nepochopil. Příklad.
Při použití SpecialCells (zde zvýraznění obsahu buňky)jsem narazil na zvláštní vlastnost, resp. pro mě záhadu. K vysvětlení jsem přiložil soubor. Jde o to, když použiju orámování oblasti tenkou, střední nebo silnou čarou (tlačítka) a poté chci označit prázdné buňky použité oblasti (černý tl.), chová se UsedRange pro každé orámování jinak.
U tenké čáry se chová tak, jako by orámování nebylo, ale při použití střední nebo silné "nafukuje" tuto oblast o horní, resp. i spodní řádek.
Proč ???
vyGoogleno !!!
Tak v ListBoxu LZE obarvit jednotlivé položky, ale je to mazec.
Spíš je to jen důkaz toho, že v Excelu jde všechno.
Nedávno zde řešený přklad. Fce SUMIF.
Nevím, ale myslím si, že v ListBoxu nelze obarvit jednotlivé řádky různě. Nikde jsem to neviděl.
http://www.contextures.com/xlToolbar01.html
doplněk
nebo třeba tak (příloha)
ale je to všechno jen v jednom sloupci
?
edit:
do události Listu je možno ještě přidat
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
V tom řešení co jsem poslal ale lze editovat přímo v userformu.
Editaci bych udělal asi tak, jestli jsem to pochopil. Ale asi tam bude potřeba editovat i další sloupce z nabídky, než jen název.
to Stalker
neříkám, že je lepší a ve svém druhém příspěvku k tomuto tématu jsem napsal, že je to to samé, co napsal zEjnik. Jen jsem fcí POSUN chtěl vybrat oblast ve které bude fce SUMIF sčítat, ale máš pravdu, je to zbytečné.
Původně jsem označil oblasti jako celý sloupec, což vedlo k dlouhé době výpočtu, proto jsem se snažil počítat jen v obsazených buňkách. Ale stačí omezit třeba na 1000 řádků a použít jednodušší vzorec. Přiznávám se, v tu chvíli mě to nenapadlo.
to Ragus (jen vysvětlení formátu)
formát [h]:mm:ss sčítá hodiny "furt dál" zatímco formát h:mm:ss na místě hodin zapíše jen maximálně 23 hodin a pak 00, formát s hranatáma závorkama napíše 24. Proto tvůj výsledek 21 hodin byl vlastně 21 + 24 = 45.
takže jen vzorcem a pokud je součet nula tak prázdná buňka?
Pokud časový formát 9:15 potřeuješ ve tvaru 9,25, tak stačí 9:15 znásobit 24 a nastavit obecný formát.
Je to vlastní fcí + podm. formát.
Pokud není vyplněn START i KONEC tak nesčítá. Nulové hodnoty jsou světlým písmem.
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.