Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  68 69 70 71 72 73 74 75 76   další » ... 298

Tu máte to makro. Treba otestovať, príliš som to neladil...
Ale ten stĺpec s príznakom zaplatenia by som tam doplnil.

Skúste si toto. Je to iba PF + vzorce + Smart Filter.

Hmm, no podľa mňa možno termínom "faktúra po splatnosti" označiť iba faktúru, ktorá nebola do konca dňa jej splatnosti zaplatená. Nie faktúru, ktorej dátum splatnosti je menší ako dnešný. Treba rozlíšiť, ktorá je už uhradená. A iba neuhradené kontrolovať na "po splatnosti".

Výpis do msgboxu je veľmi nepraktický, nedá sa odtiaľ nič napr. skopírovať, a musíte ho zatvoriť, aby ste mohol pokračovať v Exceli.

PQ je dobrá voľba. Ak budete trvať na makre tak Vám ho kľudne napíšeme. No na takéto zvýraznenie ani nepotrebujete znalosti PQ či VBA. Stačí Podmienený formát + filter na farbu (+ možno nejaká informačná bunka so vzorcom COUNTIFS a textom upozornenia).

Na jednorazové doplnenie:
vyplnenie:
A1
Ctrl+Shift+medzernik
Ctrl+Shift+šípka vľavo, aby ostal len A
Ctrl+G - Špeciálne - Prázdne bunky - OK
napíšeme "=" a šípkou hore sa doplní prvá bunka nad prvou prázdnou, teda "=A2"
Ctrl+Enter


prevod na hodnoty
A1
Ctrl+Shift+medzernik
Ctrl+Shift+šípka vľavo, aby ostal len A
Ctrl+C
pravé myšítko, prilepiť hodnoty (ikona "123")


Vo Vašom prípade ale ide o dynamický report, takže určo buď doplniť stĺpec, alebo na tento report urobiť PowerQuery dotaz do dátového modulu a naň napojiť KT.

EDIT:
Vy máte výsledný súbor XLS? Takže ide o starší Office ako 2010? Tak to PQ nepôjde.

Zatiaľ málo času, ale prišiel som na zaujímavé veci.
Uvádzam príklad toho, čo dám načítať v objFSO.GetFolder a aký adresár skutočne dostanem:
"c:" - "C:\Program Files\Microsoft Office\root\Office16".
"d:" - "D:\Dokumenty"
"e:" - "E:\Download"

a keď tam nechám lomítko \:
"c:\" - "C:\"
"d:\" - "D:\"
"e:\" - "E:\"

sranda čo? To lomítko tam musí byť! Neviem, prečo sme ho dávali vtedy preč, asi podľa požiadavky vzhľadu.

Teraz k chybe. Tá vzniká pri načítaní disku a určovaní veľkosti spracovávaných dát.
Ak spracovávame adresár vieme určiť jeho veľkosť (kvôli progresu)
CelkVelkost = objFolder.Size
ale ak sa jedná o root
tak táto vlastnosť neexistuje, a veľkosť obsadených dát potrebujeme vypočítať na základe kapacity a voľného miesta
CelkVelkost = objFolder.Drive.TotalSize - objFolder.Drive.FreeSpace
takže
If objFolder.IsRootFolder Then CelkVelkost = objFolder.Drive.TotalSize - objFolder.Drive.FreeSpace Else CelkVelkost = objFolder.Size

Nad ďalšími vecami musím najskôr porozmýšľať a mať na to čas. Ale to s tým označovaním farbou asi nepôjde...

Potrebujete Office 365.

Takže to makro parametrizujeme, pže ho potrebujete spúšťať na inom liste/disku. To že ste povedal z iného modulu, to vyznie úplne inak. To nebude problém.
Počet zdrojov je známy a nemenný?
Každý zdroj/disk má svoj list?
Ak sa jeden zdroj aktualizuje (teda sa spustí makro na jeho liste), ako sa aktualizuje tá tabuľka "zdroj spojené"? vymazať sa nemôže, to by sa museli aktualizovať všetky zdroje. Dalo by sa vyhľadať/vyfiltrovať iba podľa mena zdroju/disku/partície a vymazať iba tie, a pridať aktualizované...
No a načo je potom tá Tabuľka "Tabuľka1" na liste Tabulka? To sú už vlastne triplicitné dáta. Dávala by zmysel, ak by sa pomocou PowerQuery z nej robil ten zoznam na liste Filmy. No tu je problém, že si tam značíte manuálnym podfarbením asi čo ste videl, alebo vlastné hodnotenie, alebo neviem čo, a to by Vám po akejkoľvek aktualizácii nesedelo. Pže po pridaní jediného filmu by sa to zoradilo, ale iba dáta, nie podfarbenia. Riešením by bolo asi jedine, toto značenie robiť v ten súhrnnej tabuľke/Tabuľke v nejakom pridanom stĺpci, napr. hodnotenie 1..5, alebo V - videl. A to by sa premietlo do Podmieneného Formátovania pri danom filme, nech by bol zoradený kdekoľvek. ALE. Museli by byť vytvorené jedinečné identifikátory v tejto tabuľke/Tabuľke (napr. jedinečné číslo, ktoré by sa neopakovalo, ani po zmazaní záznamu). Prečo? Lebo sa film môže volať rovnako, a pritom pôjde o niečo iné. ALE. Toto tiež skrachuje na aktualizácii PQ.

Myslím, že niektoré veci, ktoré chcete dosiahnuť, mi zapínajú. Ale bude to možno komplikovanejšie, ak si zatiaľ myslíte.
Tiež mám zbierku, a ako pribúdali komplikácie katalogizácie, tak som sa to vysr...kašľal, a teraz mám krásny nefalšovaný chaos a neviem nič nájsť 2

No a kým som urobil progres, napíšete, že ho netreba 5
Neva skúste. Neskôr pozriem aj na ten Váš súbor.

Tu som urobil aj nejaký popis + drobné úpravy makra. Tento Váš príspevok som si prečítal až po tom, čo som to dokončil, každopádne mne to funguje, aj na USB (root aj adresár) aj na internom HDD (root aj adresár).
Ešte premýšľam, či by sa dalo (a či by sa mi chcelo), celé to prekopať tak, že by si najskôr urobilo zoznam súborov (možno kolekcia aj s objektami súborov/adresárov, možno len pole súborov urobené rovnakým spôsobom len bez načítavania informácií). Až následne by sa v druhom kole načítavali informácie o súboroch. Získame počet súborov na spracovanie a môžeme zobraziť progres. No na rýchlosti ale stratíme 2x. Raz duplicitným cyklom a raz spomaľovaním pri vypisovaní progresu. No získame prehľad.
O koľkých súboroch a akej celkovej veľkosti sa tu väčšinou bavíme? Nech si to skúsim nasimulovať.

V procedúre GetFiles ten riadok s Dir() už byť nemá. Naopak som tam ja zabudol dať ešte deklaráciu premennej CountHidden
CountHidden as Long
Pre lepšiu čitateľnosť kódu ešte odporúčam zarovnať vždy na rovnakú úroveň tabulátorom začiatok a koniec konkrétneho cyklu For-Next, priradenia With-End With, alebo podmienky If-Else-End If.

No a čo tie prvé 2 stĺpce, to nechcete radšej tiež v tom makre urobiť? Príde mi zbytočné následné rozkopírovanie vzorcov.

Zatiaľ nevidím problém...
Ešte sa rozpíšte o tom, aká veľká, alebo ako končí oblasť KRITERIUM.

Môže sa stať že bude hodnota z B rovnaká aj pre inú skupinu z A?
Budú vždy rovnaké skupiny v A zoradené všetky za sebou?

Problém a riešenie sú jednoduché.
Problém:
Tento riadok v pôvodnom kóde kontroluje existenciu adresára. To je v poriadku, takto to používam aj ja. Ale nie v parametrizovanej procedúre, kde je vstupný parameter priamo objekt adresára. Teda je jasné, že adresár existuje, keď do procedúry vstupuje ako objekt (teda overený). Preto som tento riadok, ktorý v tomto prípade robí duplicitné overenie existencie, odstránil. Keďže ale Dir() používa parameter vbDirectory, tak vbHidden neberie. Preto sa cez tento riadok nedostane "System Volume Information" (systémový skrytý adresár). Odbočka - ak by ste niekedy potreboval, aby cez Len(Dir()) prešiel aj skrytý adresár použite parameter vbDirectory + vbHidden. Takže odstránením tohto riadku z kódu sa skrytý adresár dostane ďalej na spracovanie.
If Len(Dir(objFolder.Path, vbDirectory)) = 0 Then Exit Sub
Riešenie:
Je jednoduché. Vo volacom rekurzívnom cykle použijeme vylúčenie skrytých adresárov:
Namiesto
GetFiles obj
použijeme
If Not obj.Attributes And 2 Then GetFiles obj
a skrytý adresár ani len nevstúpi do procedúry.

Čo si ale treba sekundárne uvedomiť je, že takto môžeme mať v neskrytom adresári skrytý súbor. A ten nám vypíšu obe verzie makra. Logicky. Takže to eliminujeme tak, že aj v cykle čítania súborov dáme overenie atribútu Hidden:
For Each obj In objFolder.Files
radek = radek + 1
...
Next obj

doplníme
For Each obj In objFolder.Files
If obj.Attributes And 2 Then
CountHidden = CountHidden + 1
Else
radek = radek + 1
...
End If
Next obj
If CountHidden > 0 Then CountFiles = CountFiles - CountHidden: ReDim Preserve Info(3 To 8, 1 To CountFiles) 'oprava väčšieho poľa pri Hidden

To WS som tam dal hlavne pre zjednodušenie zápisu. Mne sa to tak lepšie číta. Rozdiel v rýchlosti v tomto prípade bude 0. Ak by ale išlo o veľké množstvo operácii s Worksheets(Hárok), bolo by WS ako premenná rýchlejšie.

GetDetailsOf je pomalé. Nevidím dôvod, prečo zisťovať príponu alebo adresár súboru pomocou GetDetailsOf ???
Skúšal som to na rôznych typoch súboru, dátových, skladieb, videí od adresárov 500 MB až po cca 500 GB. A všade bolo pôvodné makro o 100-150% pomalšie. Minimálne!

Prechádzanie súborov ako takých som neriešil, teda nieje žiadny dôvod, prečo by Vám malo makro ukázať iné súbory. Nič také nepozorujem, ja mám výsledky rovnaké.

Nepoužívajte na všetky info stále GetDetailsOf. Toto trvá iba polku času.


Strana:  1 ... « předchozí  68 69 70 71 72 73 74 75 76   další » ... 298

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje