Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  123 124 125 126 127 128 129 130 131   další » ... 289

Napr. takto:
Dim S(), Pocet As Long

Sub Zoznam_MP3()
Dim FSO As Object, fsoAdresar As Object, Cesta As String, T()

Pocet = 0 'Výmaz prípadných predošlých výsledkov v poli
Erase S

With wsMP3
Cesta = .Cells(1, 3).Value
If Right$(Cesta, 1) <> "\" Then Cesta = Cesta & "\" 'Kontrola cesty
If Len(Cesta) < 3 Or Len(Dir(Cesta, vbDirectory)) = 0 Then MsgBox "Chybná cesta :" & vbNewLine & Cesta, vbExclamation: Exit Sub

Set FSO = CreateObject("Scripting.FileSystemObject") 'Vytvorenie prístupu k súborom
Set fsoAdresar = FSO.getFolder(Cesta)

Call ZoznamSuborov(fsoAdresar) 'Načítaj prvý adresár

Application.ScreenUpdating = False
With .Columns(1)
.ClearContents 'Vymaž starý zoznam
Select Case Pocet 'Podľa počtu súborov v poli toto pole prevráť cyklom alebo transponuj (nedá sa transponovať viac ako 32767 prvkov)
Case Is > 32767: ReDim T(1 To Pocet, 1 To 1) 'Prevráť
For i = 1 To Pocet
T(i, 1) = S(i)
Next i
.Resize(Pocet).Value = T
Case Is > 0: ReDim Preserve S(1 To Pocet) 'Uprav správnu veľkosť a transponuj
.Resize(Pocet).Value = Application.Transpose(S)
End Select
End With
Application.ScreenUpdating = True

MsgBox "Počet súborov *.mp3 :" & vbNewLine & Pocet, vbInformation
End With

Erase S: Set FSO = Nothing: Set fsoAdresar = Nothing
End Sub

Sub ZoznamSuborov(ByRef fsoAdresar As Object) 'Rekurzívna metóda
Dim fsoSubor As Object, fsoPodAdresar As Object, PocS As Long

With fsoAdresar
PocS = .Files.Count 'Zisti počet súborov v aktuálne skúmanom adresári/podadresári
If PocS > 0 Then
ReDim Preserve S(1 To Pocet + PocS) 'Navýš jednorázovo pole, aj keď nebude využité

For Each fsoSubor In .Files 'Prejdi všetky súbory
If LCase(Right$(fsoSubor.Name, 4)) = ".mp3" Then 'Skontroluj príponu *.mp3
Pocet = Pocet + 1 'Navýš index v poli názvov
S(Pocet) = fsoSubor.Path 'Zapíš cestu súboru
End If
Next fsoSubor
End If

For Each fsoPodAdresar In .subFolders 'Prehľadaj aj prípadné podadresáre
Call ZoznamSuborov(fsoPodAdresar) 'Načítaj podadresár
Next fsoPodAdresar
End With

Set fsoPodAdresar = Nothing: Set fsoSubor = Nothing
End Sub

Ale prečo by to nefungovalo ???

Tak vymazať alebo preniesť ? Asi preniesť.
Tým extra súborom je myslený skutočne iný súbor, alebo len iný list ? (Ľudia v tom majú bežne chaos).
Ten súbor/list už existuje (ako sa volá, v prípade súboru aj kde sa nachádza) ? Ak áno, tak pridať dáta k už existujúcim za ne, alebo nahradiť tie čo tam už sú ?
Treba testovať od prvej bunky až po poslednú použitú v danom stĺpci, alebo je pevne daný rozsah (napr. objektom Tabuľka)?
Treba kopírovať aj formát (ohraničenie, farba a pod ...), alebo iba hodnoty do prednaformátovaných buniek ?
...

Príloha?

EDIT: Malý príklad prenosu dát do iného listu. Ak by hrozilo viac ako 32767 prenášaných riadkov, treba prirobiť ešte preklápací cyklus.

"Počet výskytov" a "Počet jedinečných hodnôt" je veľký rozdiel.
Počet jedinečných podľa 2 podmienok, by sa dal takto:
=SUM(--(COUNTIFS(OFFSET(E8:E14;;;ROW(E8:E14)-1);J8;OFFSET(F8:F14;;;ROW(F8:F14)-1);K8;OFFSET(D8:D14;;;ROW(D8:D14)-1);IF((E8:E14=J8)*(F8:F14=K8);D8:D14))=1))

=SUMA(--(COUNTIFS(POSUN(E8:E14;;;ŘÁDEK(E8:E14)-1);J8;POSUN(F8:F14;;;ŘÁDEK(F8:F14)-1);K8;POSUN(D8:D14;;;ŘÁDEK(D8:D14)-1);KDYŽ((E8:E14=J8)*(F8:F14=K8);D8:D14))=1))


Išlo by doplniť aj ďalšie podmienky (neskúšal som, teoretizujem), ale dajte reálny príklad, kde bude potreba viacero podmienok. Ak bude potreba variabilný počet podmienok, bez zmeny vzorca, tak to tato nepôjde. Len pevný počet podmienok, prípadne vždy zmeniť vzorec.

Riešením by mohol byť aj takýto vzorec:
=IFERROR(MATCH(TRUE;MMULT(COUNTIF(OFFSET(OBLAST;ROW(OBLAST)-2;;1);TRANSPOSE("*"&HLADAJ&"*"));--(ROW(HLADAJ)>0))>0;0);"")

=IFERROR(POZVYHLEDAT(PRAVDA;SOUČIN.MATIC(COUNTIF(POSUN(OBLAST;ŘÁDEK(OBLAST)-2;;1);TRANSPOZICE("*"&HLADAJ&"*"));--(ŘÁDEK(HLADAJ)>0))>0;0);"")

Podľa mňa to bude OK cez tú KT...

Okrem vyššie spomínaných môžete použiť aj ďalšie spôsoby naväzujúce na fakt, že tam máte smerodajný dátum, podľa ktorého môžete vyhľadávať hodnoty. Najvyšší dátum = posledná hodnota. Zakomponoval som tam výber stĺpca pomocou Overenia dát.

Zatiaľ som urobil jeden príklad tak, že sa hľadané hodnoty proste iba pridávajú a uberajú počtom oddelených parametrov funkcie. Dalo by sa to prerobiť aj na oblasť hodnôt ako jeden parameter. Popis je v makre. Je tam príklad v makre "Priklad" aj ďalší na použitie ako UDF v liste.
Pozrite si popis, doplňte požiadavky, a najlepšie priložte aj prílohu.

Napr. neviem, čo to má vracať, ak nenájde nič, čo má urobiť pri chybe parametrov, pole horizontálne/vertikálne, čo ak bude oblasť viacoblastná (multiareas), ...

Nejaký ten príklad. Nieje to merná minca, len pár návrhov. Každopádne by som na Vašom mieste používal radšej nejakú rozumne definovanú oblasť, ako celý stĺpec s miliónom riadkov a ešte vylučovaním prvého riadku...

To pomocou Find možné nieje. Použil by som InStr() v cykle nad poľom. Ak si nebudete vedieť rady, pozriem na to ak bude čas.

1. Ide iba o nájdenie prvej spĺňajúcej bunky ?
2. Počet parametrov je dynamický či statický ?
3. Parametre sa berú z premenných, alebo to chcete dostať do nejakej bunky pomocou UDF a parametre sú odkazy na bunky ?

Teda nedozvedeli sme sa:
-Koľko bude +- kategórií
-Koľko bude +- max položiek na kategóriu
-Čo ešte obsahuje tá tabuľka kategórií/položiek ? Pochybujem, že je to len takto. Nieje tam náhodou napr. cena, balenie, stav skladu, popis, ... ?

Priložte reálne vyzerajúcu prílohu. Ak nechcete zverejniť reálne názvy položiek, tak ich zmente. Ponechajte ale typ, rozumné množstvo, rozloženie...

Tieto informácie sú potrebné na nasimulovanie a vyskúšanie toho, čo bude ešte dopočítateľné maticovými vzorcami v RealTime, a čo už bude lepšie riešiť občasnou aktualizáciou napr. KT.

Primárne je to určené samozrejme na premenovanie súborov, nie na zmenu prípony, čo vo väčšine prípadov znamená nutnosť konverzie súboru na daný typ. A to sa asi deje u Wordu. DOC nieje DOCX, je to iná štruktúra dokumentu. To že to Word dokáže otvoriť viac druhov súborov, je tak naprogramované, to neznamená, že sú súbory rovnaké. Podobnosť XLS a XLSX je
a) asi väčšia ako Doc vs. Docx
b) alebo je Excel naprogramovaný tak, že si sám zistí bez ohľadu na príponu Xls/Xlsx, podľa štruktúry súboru, ako ho má spracovať.
Tomuto sa vôbec nemôžete čudovať.

Skúste toto.

EDIT: Teraz si uvedomujem, že tie výberové zoznamy asi budete chcieť na viac buniek ako len A2:B2. A to je problém pri podmienenom výberovom zozname. Ten musí byť totiž načítavaný z nejakých buniek, nemôže byť len vypočítané pole. Teda by ste musel pre každú kategóriu zaviesť jeden stĺpec, ktorý by hľadal všetky jej položky.
Ako často budú pribúdať či už nové položky alebo nové kategórie ? Ak iba občas, na jedinečné zoznamy by sa dala použiť KT. Ak príliš často, tak by sa musela urobiť maticová tabuľka napr. 20 stĺpcov (kategórie) x 500 riadkov (položky), a počtom sa zvyšuje náročnosť až do neúnosnej miery. Teda - Koľko môže byť najviac kategórií a koľko najviac položiek ?
Ďalej, koľko bude takých výberových riadkov ? Ak to je napr. nejaká obyč. fakturácia a pod, tak býva do 20 položiek.
...

Priamo na C:\ dostanete chybu "Permission denied", čo je presne to, čo som spomínal. V Roote iného disku je to OK. Ale tento prípad obmedzených práv vráti výsledok "ERROR". Výsleodk "IGNOR" by mal nastať v prípade, ak nový názov = starý názov. Čo máte v stĺpci "Zmena" ?
Ak to nieje priamo Root "C:\" ale je to "C:\premen" - bez lomítka na konci, tak to musí dať "ERROR".
Priložte súbor, kde máte presne vyplnené dáta, a presnú adresárovú štruktúru (súbory neposielajte, len štruktúru, ja si súbory vytvorím).

Budem musieť na to asi niekedy lepšie pozrieť, a možno aj prepracovať logiku.

Keď prídem a bude sa mi chcieť, vyskúšam nasimulovať. Ale ak je to skutočne rovno pod C:\ tak vidím problém v prístupových právach. Windows totiž väčšinou požaduje práva správcu na priamy prístup do koreňu C:\. Skúste to dať do nejakého adresáru napr. C:\Pokus\


Strana:  1 ... « předchozí  123 124 125 126 127 128 129 130 131   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

vyhledání obsahu buňky

vfort • 18.7. 11:22

Názvy z řádků do sloupců Power Query

Alfan • 18.7. 10:01

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

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