Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  253 254 255 256 257 258 259 260 261   další » ... 289

Ak tá tabuľka bude naozaj veľká, tak Vám prerobím výsledok do poľa, teraz je to pre zjednodušenie zápis výsledku po bunke. Ak to bude iba menší počet výsledkov (nie 100-vky), tak si to môžete nastaviť aj do Worksheet_Change udalosti pre tú B2.

Samozrejme ak by bol hrozil výsledok dlhší ako 41 riadkov, čo tam máte teraz, treba upraviť.

2 verzie. V Worksheet_Change volajte, ktorú chcete. Líšia sa iba cyklom For.
Jedna schová stĺpce podľa všetkých validných textov v stĺpci A.
Druhá schová stĺpce iba podľa posledného validného textu v stĺpci A.

Validné texty si nastavujete v makre v poli "t" a stĺpce ktoré sa majú schovávať si nastavte v poli "Prav". Počet textov v "t" a počet položiek v poli "Prav" musí byť samozrejme rovnaký.

Odkrývanie nevalidných stĺpcov prebieha automaticky.

Žiaľ ani vnorenie to nepapá.

Pravda, že ak sa vcítime do kože niekoho, kto nieje zbehlý a netuší, že existuje niekoľko kombinácií oddeľovač/preklad funkcie, tak by sme si asi tiež trhali vlasy pri chybe inak funkčného riešenia.
Aspoň, že chyba s oddeľovačmi sa tu nevyskytuje často.
K prekladu fnc, pokúsim sa nezabudnúť dať aspoň upozornenie na SK verziu. 4

Upravené. Chcete to aj vysvetliť, alebo to pochopíte z kódu?

Prosím ešte raz popíšte podrobne čo sa má diať, každý krok čo s tým budere robiť opište čo urobíte na ktorom liste. Predošlé zadanie som pochopil tak, že sa majú skopírovať z listu1 do listu2 iba riadky, v ktorých niesú vyplnené všerky 4 dátumi. Teraz sa nezkopírujú 2. List 2 sa zmaže celý automaricky, vy nič nemusíte, potom sa ta vložia nové data. Mám Excel 2013, a takto to funguje.
Popíšte presne na ktorej bunke je čo zle. Lebo to zadanie bieje 100% ľahko zrozumiteľné.

Vynechajte tú jednu premennú, v tomto prípade nieje potrebná ani pre čitateľnosť:
Sub CreateDir()
Dim Cesta As String
Cesta = "c:/prace/" & Worksheets("Hárok1").Cells(1, 1) & "\"
If Len(Dir(Cesta, vbDirectory)) = 0 Then MkDir (Cesta) Else MsgBox "Tato složka již existuje!"
End Sub


dá sa ísť ešte kratšie, ale to sa málokomu dobre číta:
Sub CreateDir()
If Len(Dir("c:/prace/" & Worksheets("Hárok1").Cells(1, 1) & "\", vbDirectory)) = 0 Then MkDir ("c:/prace/" & Worksheets("Hárok1").Cells(1, 1) & "\") Else MsgBox "Tato složka již existuje!"
End Sub

Urobil som Vám jedno riešenie cez pole, rýchle, kompletné, s overovaním a vylúčením riadkov so 4 dátumami, orámovaním. Je to také rýchle, že sa to dá používať takmer OnTheFly :)

Je to ošetrené voči neexistencii súboru, voči prázdnym riadkom, voči žiadnym riadkom v súbore, voči chybe pri zápise, voči nezhodnému počtu riadkov a počtu Checkboxov, voči konverznej chybe. Proste proti chybám, pri neoprávnenej manipulácii s TXT súborom. Vyskúšajte.

Keď nikto, tak skúste toto:

Len pre zaujímavosť a úplnosť dodám, že sme to poriešili cez mail, a keďže cudzie dáta sú pre mňa sväté, tak Vám tu uvádzam to riešenie skopírované do toho môjho súboru, čo som si vytvoril sám podľa obrázkov.
V reálnom súbore robilo problém zacyklenie, z dôvodu nevyplnenej oblasti Fabrics - ošetrené, a ďalej bolo potrebné zmeniť kopírovanie hodnôt z Copy Destination na Copy PasteSpecial, pretože tam boli vzorce.

Podmienené formátovanie nefunguje pri odkazovaní na iný zošit, a to dokonca ani pri Definovanom názve 7
Tak napr. pomocným dolovacím skrytým stĺpcom...

Ešte, že ste povedal... Mal som tam chybku, a to tú, že som pole oblasti rozšíril nie o 7, ale len o 6 stĺpcov. Jedno číslo, a už to na oblasť 4 nefungovalo :)
Rozsekať chcete makro ? Tu to máte, obe verzie, s tlačítkom sa spustí tá, ktorá nebude mať v názve na konci tú "2". Lepšie Vám to vysvetliť neviem, sú tam popisy, názvy premenných.
Ak chcete vysvetliť vzorec, no ten funguje rovnako a v rovnakom slede ako to makro, akurát na konci dá kratšiu slovnú hlášku. Ku vzorcu je pre zvýraznenie pridané podmienené formátovanie.

@Vaclav-Vesely: Tak si to tu čítam, ale nevidím či a o koľko sa Vám to podarilo zrýchliť. Uveďte teda prosím pre úplnosť ako ste pokročil. Či už čas alebo prílohu.

No urobil som Vám to s takou malou "berličkou" na zisťovanie počtu riadkov v zatvorených zošitoch. V zošite Spolu.xlsm nepožívajte bunku pod tlačítkom L1, počas importu sa tam vkladá vzorec na spočítanie použitých buniek v zatvorených zošitoch. V makre je konštanta MaxR, ktorá určuje v koľkých riadkoch sa bude testovať počet použitých riadkov. Je tam nastavené 1000, ak hrozí, že túto hodnotu niekedy prekročíte, nastavte podľa potreby, ale nie zbrklo nastaviť 1 000 000, pretože to bude vážne spomaľovať.

Je tam urobená aj kontrola na prázdnu bunku alebo hodnotu 0, pretože štandardne sa pri čítaní z iného zošita dostane 0 aj z prázdnej bunky, takže to máte ošetrené.

Dávajte si pozor na to, aby ste mala súbory s datami pomenované nasledovne:
-názov súboru "01_Smutny.xlsx". Musí tam byť podčiarknik, "_", ktorý určuje, že za ním začína meno.
-týmto menom musí byť pomenovaný v zošite list s datami.

Je jedno koľko budete mať v zložke súborov, je jedno či tam budú aj iné ako Excel súbory, je jedno, či bude zožit Spolu.xlsm a dátové zošity spolu, a je jedno či budete používať XLS, XLSX alebo XLSM, a je jedno koľko bude v ktorom zošite listov.

Teraz je to nastavené tak, že v adresári kde sa práve nachádza súbor Spolu.xlsm má byť podadresár "Prac", v ktorom sú dátové súbory. To si ale kľudne zmente v riadku
Cesta = .Path & "\Prac\"
kde .Path dáva hodnotu adresy kde sa práve nachádzate so súborom Spolu.xlsm, ďalej je to jasné (dodržte lomítka).

Je to viacmenej ošetrené na chyby, či už na 0 riadkov v dátovom liste, neexistenciu listu, chybu pri vkladaní vzorcov, neexistenciu "_" v názve dátového listu, či na ignoráciu spracovania listu s názvom Spolu.xlsm (ak budú spolu). Ak Vám to dá hlášku "Chyba !", vedzte, že operácia nebola dokončená, aj keď tam máte už nejaké data, to odkiaľ posledné importované data pochádzajú, Vás môže upozorniť na to, kde je asi chyba.

EDIT: Ešte som zabudol, že čo sa rýchlosti týka, tak u mňa celá operácia na 1736 riadkoch po 11-ich stĺpcoch z týchto 15 súborov trvá odhadom asi 0,3 sek.


Strana:  1 ... « předchozí  253 254 255 256 257 258 259 260 261   další » ... 289

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28