V tom prípade ale stačí iba upraviť riadok s kontrolou na tento
If D(i, 1) <> "" And (D(i, 11) = "" Or (D(i, 11) = 1 And Not (D(i, 12) = "" And D(i, 13) = ""))) Thenteda aby sa nekontrolovalo IsEmpty a porovnávalo = či <> "". Teda v prípade, že vzorec vracia "". Vzorec som sa nedozvedel.
"listu3 (V Opravě)", "Listu4 (Soupis)" o ničom takom ste nepísal.
"V každém listu kam by se generoval výstup by byl první řádek záhlaví" - čože? Takže koľko tých listov budete generovať. Veď nech sa to urobí v jednom cykle.
"větší než 1 a má textovou poznámku ve sloupci 12 nebo 13 nakopíruje do třeba Listu4 (Soupis)" - takže každý generovaný list bude mať svoje rozdielne podmienky, predpokladám.
Ak by ste dal na začiatku reálnu anonymizovanú prílohu (reálne rozsahy, formáty, umiestnenia, typy dát, vzorce, listy, podmienky ..., iba zmenené na nie citlivé dáta), tak to máte dávno hotové, ja by som na "neštartoval" kvôli dávkovaniu informácií, a máme obaja cez víkend viac času na upratovanie a na manželku
Tak aké sú podmienky pre ktorý list?
Vy teda potrebujete uchovať v Zostave rovnaké vzorce aké sú v tom 11. stĺpci v liste Souhrn. Podľa mňa je zostava výstup nejakých dát, a meniť v nej by sa hodnoty nemali. Teda postrádam zmysel, aby tam boli vzorce, ktoré svoju hodnotu už raz vypočítali v Souhrn. Môžete priložiť ten vzorec? A ide iba o vzorec v 11. stĺpci?
Tu máte príklad. No či to bude možné urobiť takto rýchle, záleží na Vašej odpovedi.
Ak to teda chápem správne, tak napr. takto:
Položím teda rovnakú otázku ešte raz:
"elninoslov" napsal/a:
Ten list v tých zdrojových súboroch, odkiaľ čerpáte dáta, sa volá vždy rovnako?
Najlepšie by bolo priložiť prílohu. Obrázok nie je priložený.
If (Len(Cells(A, 1)) = "n") Thenje nefunčné Len() vráti dĺžku hodnoty a porovnávate dĺžku s písmenom "n".
Vytvoriť list pre každú položku? A ako sa bude list volať?
...
Zaregistrujte sa, aby ste mohol priložiť anonymizovanú prílohu.
Ten list v tých zdrojových súboroch, odkiaľ čerpáte dáta, sa volá vždy rovnako?
Dáta v tých súboroch sú v D s medzerami?
V Tabuľke (nie obyč. tabuľke) sa to musí počítať inak.
V tom prípade stačí teda ponechať iba makrá "Aktualizace" a "PripravaPeci". Všetko ostatné môžete zmazať, aj Module2, ten som tam zabudol.
OT: Takže sa stávam spolupáchateľom vraždy? No to ste ma nepotešil. Ja, ctihodný občan ...
V tých nových dátach sa opakujú časy. V Celkem si vyfiltrujte pec C1. Riadok 103 a 124 majú identické dáta až na stĺpec Hloubka. Ako ošetriť proces zapísaný 2x v rovnakom čase?
Rovnaký problém aj v ostatných prípadoch (napr. C2 ide 16.10., 17.10., potom znova 16.10. a 17.10.) - to sú chybné vstupné dáta v Celkem.
Vyskúšajte toto. Potrápil som sa aj s takými vecami, aby si to samé zoradilo požadované pece tak ako idú v stanovenom zozname v liste "pomoc", vytvorilo listy presne v poradí, prebytočné zmazalo, a pod. Zmenil som aj niektoré vzorce. Nemám teraz už viac času, ale ešte by som možno pouvažoval nad tým, zmazať riadky, ktoré nie sú použité, kvôli zmenšeniu veľkosti súboru a lepšiemu scrolovaniu. Lenže následne by sa museli makrom pri aktualizácii upravovať formáty, orámovanie, vzorce a pod.
Ak chcete riešenie, musíte dodať oveľa viac informácií, prílohu, a lepší popis.
Dáta nemajú hlavičku? Iba výsledok má hlavičku? Kopírovať riadky? Celé riadky (16000 stĺpcov)? Ako určiť rozsah oblasti, podľa ktorého stĺpca? Je to Tabuľka alebo tabuľka? Treba predchádzajúce výsledky mazať? Sú vedľa dát a výsledkov iné údaje (či sa dá použiť UsedRange)? Sú dáta filtrované? Sú tam medzery, zlúčené bunky? Kopírovať aj formáty buniek (orámovanie apod.), alebo iba údaje? Sú tam vzorce či len dáta (ak vzorce, tak kopírovať vzorce alebo výsledky)? O koľko sa asi jedná údajov 100/250000? Tie dáta sú import z nejakého súboru? Ak áno, dal by sa možno použiť bezmakrový prístup cez PowerQuery priamo zo súboru (ten bude potrebné priložiť). Aký je to Office?
Už teraz som venoval premýšľaniu o Vašom probléme viac času ako Vy.
V stĺpci "Vsázky" ??? Takže to nejde za sebou podľa stĺpca "Čas datum zahájení" ? To je zvláštne, ale nijako to nevadí. Mám hotové rozobranie na pece, zoradenie podľa dátumov, pridelenie súčtov pre jednotlivé dni, samozrejme "vyrobenie" dní v použitom rozsahu, ošetrené prechody cez polnoci a pod. Zajtra budem možno pokračovať, no mám otázky. Napr.
-Tých pecí je stále rovnaký počet?
-Ak nie, tak v liste Graf majú len tie, ktoré sú v dátach Celkem, alebo aj tie, ktoré nie sú použité?
-Je možné, že sa v Celkem objaví názov pece, ktorá nie je v Graf?
-Je možné, že nebude existovať list pece, ale v Celkem pec bude? Potom treba vytvoriť list, alebo ako?
-Ak chýba "Čas a datum ukončení", je logické teda, že to je pretrvávajúce, teda do teraz, ale v listoch pecí tento posledný dátum "teraz" nie je. Má sa tam vyplniť?
-A tu sa dostávam k tomu, čím ste ma Vašim príspevkom zneistil. Zdrojom sú dáta v liste Celkem, alebo dáta v samostatných listoch pecí (C1, C2, ...)? Normálne som na Vážkach.
-V liste Graf, ak nie je pre danú pec v danom dni žiaden záznam, má byť ako Pasiv 24:00 a Aktiv 0:00 alebo majú byť bunky prázdne?
Viem, že som mal ešte nejaké otázky, ale už si nespomeniem, možno keď sa k tomu vrátim...
Vidím tam filtre, teda je možné, že nepôjdu tie dáta časovo chronologicky za sebou???
Dalo by sa s tým vybabrať takto:
=HYPERLINK("#'"&MID(CELL("address";'Jméno(1)'!C3);FIND("]";CELL("address";'Jméno(1)'!C3))+1;45))
=HYPERTEXTOVÝ.ODKAZ("#'"&ČÁST(POLÍČKO("address";'Jméno(1)'!C3);NAJÍT("]";POLÍČKO("address";'Jméno(1)'!C3))+1;45))
a ak chcete mať zobrazený iba názov listu na ktorý to smeruje, tak ešte pridajte ako 2. parameter do HYPERLINK/HYPERTEXTOVÝ.ODKAZ toto
MID(CELL("filename";'Jméno(1)'!C3);FIND("]";CELL("filename";'Jméno(1)'!C3))+1;31)
ČÁST(POLÍČKO("filename";'Jméno(1)'!C3);NAJÍT("]";POLÍČKO("filename";'Jméno(1)'!C3))+1;31)
vyzerá to komplikovane, ale nie je, a reaguje to na zmenu názvu listu.
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.