Příspěvky uživatele


< návrat zpět

Strana:  1 2 3   další »

Děkuji Jiří497, funguje to. Moc děkuji. 1

Dobrý den,
dovoluji si Vás požádat o pomoc s doladěním makra. V příloze mám makro, které vyhledává požadované hodnoty, ale prohledá při tom celý sešit a hodnoty vyhledané hodnoty mi znovu přepíše.
Potřeboval bych doladit tak, aby vyhledávání fungovalo jen pro nově přidané řádky a předešlé řádky se již nepřepisovaly.

Už to asi chápu. Excel to prohledává neustále.
Šlo mi o to, že až si naloaduji data do tabulky Evidence změn, tak aby došlo k prohledávání.
Namísto v tabulce evidence změn jsem daný kód vložil do makra při loadování dat a již mi velká tabulka funguje rychle.

Dobrý den,

mám tento kód, který funguje jako SVYHLEDAT funkce. Jakmile jej ale použiji do souboru s cca 4.000 řádky, tak je pohyb šipkami po souboru hodně pomalý, a téměř se zasekne. V budoucnu se počítá s tím, že soubor naroste na cca 50.000 řádků. Nevíte, co s tím, jak to zrychlit?

V souboru mám dalších 5 listů, kde jsou data cca ve 30 řádcích, takže podle mě nic náročného.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim list As Worksheet, dataListu As Worksheet
Dim posledniradekVTabulceZmen As Long, posledniRadekVKS As Long, x As Long
Dim dataRng As Range

Set list = ThisWorkbook.Worksheets("EVIDENCE ZMĚN")
Set dataListu = ThisWorkbook.Worksheets("KS")

posledniradekVTabulceZmen = list.Range("R" & Rows.Count).End(xlUp).Row
posledniRadekVKS = dataListu.Range("A" & Rows.Count).End(xlUp).Row

Set dataRng = dataListu.Range("A2:P450")

For x = 2 To posledniradekVTabulceZmen
On Error Resume Next
list.Range("T" & x).Value = Application.WorksheetFunction.VLookup( _
list.Range("R" & x).Value, dataRng, 11, False)

Next x

For x = 2 To posledniradekVTabulceZmen
On Error Resume Next
list.Range("U" & x).Value = Application.WorksheetFunction.VLookup( _
list.Range("R" & x).Value, dataRng, 12, False)

Next x

End Sub

Problém je v tom, že soubor, kde uživatel bude zadávat data nesmí mít makro.
Uživatel ale bude mít povoleno vložit konkrétní data - proto je tam ověřování dat.
Uživatel pak vyplněný soubor odešle mailem.

Později obsluha databáze vezme zaslaný excelevský soubor a a jeho obsah makrem načte do databáze. No a pokud tam budou nesmysly, tak se nakopírují nesmysly. Naštěstí v databázi makra povolena jsou, takže tam se na ty chyby přijde.

Děkuji za odpovědi.
Vámi popsané jsem již zkoušel, šlo mě hlavně o to, abych eliminoval kopírování buňky odjinud.
Ale jak jsem našel na zahraničních fórech, tak min. od r. 2015 se o tom ví a jak to vypadá, tak s tím Microsoft nic neudělal.
https://excel.uservoice.com/forums/304921-excel-for-windows-desktop-application/suggestions/10686822-stop-copy-paste-overwriting-data-validation

V pohodě, počítám s tím, že z 80% uživatel data zapíše. Ten zbytek bude kopírovat... uvidím v budoucnu. 1

Dobrý den,

nevíte, prosím, zda jde nastavit, aby se nepovolil přenos formátu z cizí kopírované buňky do buňky, která má nastavené ověření dat?
Př. v A1 je odemčená buňka a má nastavení ověření dat, aby se mohla vkládat jen celá čísla 1-10.
Zkusmo napíši text aaa do D1 a uzamknu sešit.
Když je sešit uzamčený, tak je možné psát jen do A1. To je vše v pořádku.
Problém je v tom, že excel umožní např. kopii uzamčené D1 s textem aaa (CTRl+C) a její vložení (CTRL+V) do A1. Tím je porušeno pravidlo pro ověřování dat a v A1 je tedy aaa. Když chci zapsat něco jiného, umožní psát čísla 1-10 na základě ověření dat.
Nevíte, co s tím? Potřebuji, aby uživatel nemohl tímto způsobem ověření dat obejít.
Bylo by super, pokud by řešení bylo mimo VBA.

lubo, to teda fakt zírám. Super. také jsem ověřil pro další sloupec. Jen mám chybu v záhlaví a musí tam být NAZ NOVÉ místo NAZ NOVÝ.
Jen jsem ještě ten úžasně krátký vzorec nepochopil, jak funguje, ale je to super. Pokud blíže vysvětlíš, budu rád. Nechápu, jak přesně najde v buňce místo, kde to má rozseknout a zobrazit zbývající hodnotu v buňce Také díky.

Pro řešitele:
Hodnoty NAZ PŮVODNÍ, NAZ NOVÉ, DOP PŮVODNÍ, DOP NOVÉ, apod by měly být vždy jen 1x v některém z těch sloupců BC:BL. neměly by se vícekrát opakovat. 1

Jiří497, to je přesně ono, co jsem potřeboval. Ověřil jsem to i navedlejší sloupec s "novými hodnotami a také to funguje.

=KDYŽ(JE.ČISLO(NAJÍT("NAZ NOVÉ";BD4;1));NAHRADIT(BD4;1;11;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ NOVÉ";BF4;1));NAHRADIT(BF4;1;11;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ NOVÉ";BH4;1));NAHRADIT(BH4;1;11;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ NOVÉ";BJ4;1));NAHRADIT(BJ4;1;11;"");KDYŽ(JE.ČISLO(NAJÍT("NAZ NOVÉ";BL4;1));NAHRADIT(BL4;1;11;"");"")))))

Jen ten soubor nejde stáhnout, píše mi to chybu. Ale to nevadí, vzorec je tu, pro případné zájemce s podobným problémem.
Díky moc!!! 9

Děkuji za odpověď, robert13, ale není to ono. Kalkuluješ s hodnotou v sloupci V. tam bude úplně něco jiného. Do V jsem zapsal pouze příklad toho, co se má zobrazit ve W. Navíc kalkuluješ s pevěn danou hodnotou, ale ty hodnoty v BC:BL mohou být např. NAZ PŮVODNÍ***ABC, NAZ PŮVODNÍ***123, NAZ PŮVODNÍ***BLABLABLA, atd. Do W se tedy musí zapsat ta konkrétní hodnota, která bude v některém z těch sloupců BC:BL. Pokud to pomůže, tak počítám s tím, že "NAZ PŮVODNÍ" bude zapsán v tom řádku jen 1x.

robert13 napsal/a:

V českej verzii:

=KDYŽ(NEBO(V4="";A(BC4="";BE4="";BG4="";BI4="";BK4=""));"";ZPRAVA(POSUN(BC4;0;(ZLEVA(BC4;11)=$W$1)*0+(ZLEVA(BE4;11)=$W$1)*2+(ZLEVA(BG4;11)=$W$1)*4+(ZLEVA(BI4;11)=$W$1)*6+(ZLEVA(BK4;11)=$W$1)*8);DÉLKA(POSUN(BC4;0;(ZLEVA(BC4;11)=$W$1)*0+(ZLEVA(BE4;11)=$W$1)*2+(ZLEVA(BG4;11)=$W$1)*4+(ZLEVA(BI4;11)=$W$1)*6+(ZLEVA(BK4;11)=$W$1)*8))-14))

Dobrý den,
dovolím si požádat o radu, jak najít hodnotu v řádku a na jejím základě zobrazit příslušný výsledek.
Mám soubor, viz příloha.
Pokud je v BC nebo BE nebo BG nebo BI nebo BL nějaká hodnota, která začíná "NAZ PŮVODNÍ", pak se musí zapsat zbývající text za "NAZ PŮVODNÍ***"

př.: BC4 obsahuje "NAZ PŮVODNÍ***BCCCCC", tak do buňky W4 se napíše "BCCCCC"
př.: BG16 obsahuje "NAZ PŮVODNÍ***PUMPIČKA", tak do W16 se zapíše "PUMPIČKA"

V sloupci W je zatím zkusmo vzorec, který mi řekne, že v daném řádku v některém ze sloupců BC nebo BE nebo BG nebo BI nebo BL je zápis začínající "NAZ PŮVODNÍ" a vrátí zápisem "je hodnota".
Rozepsání řetezce za NAZ PŮVODNÍ mi funguje vzorcem, ale pouze pro BC
KDYŽ(JE.ČISLO(NAJÍT("NAZ PŮVODNÍ"; BC4));(ČÁST(BC4;15;200));"")
Potřeboval bych tento vzorec rozšířit i na zbývající sloupce BE, BG, BI a BL
Pokud je to možné, uvítal bych řešení ve VBA (nevyznám se a data budou v tabulce přibývat), event. vzorcem v buňce. Poradí, prosím někdo? 4
Zkoušel jsem různě kombinovat funkci A a funkci NEBO ale stále mi to nejde.

Dobrý den všem,

rád bych požádal o pomoc s funkčním vzorcem K4*100=CELÁ.ČÁST(K4*100) na kontrolu vkládaných dat na 2 desetinná místa.
Snažím se tento vzorec zahrnout do podmínky v sloupci K, ale z nějakého důvodu je tato kontrola na 2 desetinná místa excelem ignorována. Nechápu proč.
=KDYŽ(I4="";"";A(K4*100=CELÁ.ČÁST(K4*100);(USEKNOUT((K4/(1+I4/100)/1,25);2))<=(USEKNOUT((USEKNOUT((J4/1,25/(1+I4/100));2))*1,03;2))))

Kontrola vkládaných dat musí fungovat následovně:
Pokud je I prázdné, pak nesmí dát nic vložit (napsat upozornění "vložte DPH do sloupce I")
Pokud je I a J vyplněné, pak umožnit vložit data do K tak, že musí současně dále platit:
- číslo v K musí být max na 2 desetinná místa, nesmí se zaokrouhlovat - zde je funkční vzorec =K4*100=CELÁ.ČÁST(K4*100)
- když od K odečtu DPH a marži 25% a toto celé useknu na 2 desetinná místa, pak musí být menší nebo rovno hodnotě v P
Poradí, prosím někdo?

Děkuji za objasnění. Našel jsem.

Omlouvám se, ale ještě jedna věc.
Musel jsem v změnit názvy listů (newdata na newdatao a vtabulce na evidence20) a hle makro od elninoslov funguje.
Pokud ale chci použít toto řešení i v jiném souboru, tak mi to píše Run-time error 424 a zastaví se na řádku
Pocet = wsNewData.Cells(Rows.Count, "A").End(xlUp).Row - 2
Souvisí to nějak s názvem listů?

Teda, moc děkuji za řešení. Vypadá to, že obě fungují. U řešení od lugr mi monitor problikává, nevím proč, jestli je počítání náročnější.
Zkusím použít řešení od elninoslov.
Oběma moc děkuji.


Strana:  1 2 3   další »

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura III

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

Aktivní diskuse

kopie mezi instancemi Excelu

rinma • 23.10. 7:16

kopie mezi instancemi Excelu

Fantasyk • 23.10. 2:22

kopie mezi instancemi Excelu

lugr • 22.10. 19:16

kopie mezi instancemi Excelu

eLCHa • 22.10. 15:22

kopie mezi instancemi Excelu

rinma • 22.10. 13:08

Rozdělení služeb

Decred • 22.10. 12:45

Rozdělení služeb

DecredCZ • 22.10. 12:44