Bo bug ;)
Přiznám se, že jsem vyhledával jen trochu, protože věřím, že jste hledal a nenašel. A to, že jsme nic nenašli naznačuje, že jste buď první, kdo to objevil, ale pravděpodobněji to nikdo neřešil.
Začátečník na to nenarazí, protože ještě nepoužívá UsedRange a když už, tak pravděpodobně ne ve spojení s xlThick.
Pokročilý na to nenarazí, protože už nepoužívá UsedRange a když už, tak určitě ne ve spojení s xlThick.
Pochopil jsem, že jen zkoušíte. Ale je to o návycích - proto vám vytýkám ten Select, protože už byste ho neměl použít ani tenkrát, když si jen něco zkoušíte ;)
Pak byste totiž nejdříve udělal:
Dim r as range
Set r = ActiveSheet.UsedRange
'kód
r.SpecialCells...protože víte, že UsedRange se během kódu může změnit (nejen z tohoto důvodu) a proto si ho nejdříve uložíte ;)
A pak byste na to nenarazil ;)))
;)
neopravím na SpecialCells, protože tady to nebude to pravé. Tady to konečně asi bude ten Set. Nebo mně napadá, že by šlo možná využít Autofilter+Pouze viditelné buňky (a bude to bez kódu), ale to by bylo třeba vidět data ;).
A budu rychlejší ;)))
Nevím, proč vymýšlet nějaké doplňky či dvojité lišty.
Klikněte na ty šipky pro výběr listu (vlevo dole vedle prvního ouška listu) pravým tlačítkem a vyjede vám seznam listů
Pokud dáte Další listy ... vyskočí dialog s listboxem a seznamem všech listů
Tedy integrovaná věc v excelu - není třeba nic vymýšlet.
@Opičák
nestudoval jsem ten kód, ale asi to nebude listbox v pravém slova smyslu ;)
Já bych na to šel takhle (ranní trénink na připomenutí pár věcí ;))) )
Asi jste na to přišel sám, ale xlThick rozšiřuje UsedRange nahoru a dolů. Dle mého názoru je to chybné chování, protože pokud by bylo chtěné (netuším proč by mělo být), tak by se oblast musela rozšiřovat i doleva a doprava.
Nicméně je pravda, že použití Cells a UsedRange (a ještě k tomu vaše oblíbené Select), tak jak jej v tom kódu požíváte se nedá označit jinak, než jako prasárna ;)
Cells - tady v žádném případě, v tu chvíli zbytečně pracujete se 17mld buněk, když vlastně chcete pracovat jen s 10!
UsedRange - používat jedině ve výjimečných případech, tady přesně vidíte proč. V tomto kódu by se dalo pouvažovat o nahrazení za Cells, protože chcete vymazat formátování v celém listu, na to UsedRange postačí.
Pokud vím s jakou oblastí pracuji, tak použiji přece ji a ne UsedRange.
Select - no fuj!!!
Ten dotaz je napsán poněkud nesrozumitelně, ale pokud jsem pochopil
ComboBox1.Style = fmStyleDropDownListdovolí vybrat pouze ze seznamu položek v CB
Ano - to je pravda, ale ty bychom asi nepotřebovali objektově orientovaný jazyk ;)
Když už ho máme a ty objekty s vlastnostmi a metodami tady jsou, tak je používejme ;)
A to by se měli začínající naučit, než získají špatné návyky ;))
Prostě stačí přemýšlet - když bych to dělal bez kódu, tak bych to udělal tak a tak. Mno a teď to jenom napsat.
;)
:))
mno to už jsme trochu mimo dotaz, ale pokud to potřebujete bez cyklu, tak se tady nabízí automatický filtr + pouze viditelné buňky
ale to jen v případě, že je chcete naplnit stejnou hodnotou nebo vzorcem
pokud mají mít různou hodnotu, taxe bez cyklu asi neobejdete
Mno nebudu dále trápit
pokud jsou to jen konstanty (všechny typy):SrchRngu.SpecialCells(xlCellTypeConstants).EntireRow.Delete
pokud jsou to jen vzorce (všechny typy):SrchRngu.SpecialCells(xlCellTypeFormulas).EntireRow.Delete
pokud chci všechny neprázdné buňky, tak to napíšu takto:Union(SrchRngu.SpecialCells(xlCellTypeConstants), SrchRngu.SpecialCells(xlCellTypeFormulas)).EntireRow.Delete
Jinak např. jen číselné a textové budou takto:
.SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues)
Mno jste blízko, ale není to ono
ale hledalo vyplněné buňka?
Tady už ani tak nejde o rychlost, ale o přehlednost a délku kódu.
Co se týče rychlosti - integrovaná věc bude vždy rychlejší než VBA
Už jsem to tu psal
Zkusím napovědět
CTRL+G
Ani Set není potřeba
Je to pořád dokola to samé - stačí trošku hledat
@Palooo, marjankaj
Taky byste už mohli zareagovat na to co tu sem tam píšu. :(
Proč cyklus.
Private Sub Worksheet_Change(ByVal Target As Range)
If Union(Range("D4:D2000"), Target).Address = Range("D4:D2000").Address Then
...
End If
End Sub
Mno já bych řekl, že žádný problém nenastane - názvy fcí se automaticky přeloží do angličtiny
jediné, co mně napadá, je formát
češi mají rok v některých verzích přeložený jako např. dd.mm.rrrr a slováci tipuju dd.mm.yyyy
je tu slováků dost - vytvořte nějaký testovací soubor s obsahem podobným tomu co chcete poslat a nechte si to ověřit tady
Nahrál jsem krátké video ;)
http://www.youtube.com/watch?v=fEN-aZPjdmU&feature=youtu.be
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.