Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  228 229 230 231 232 233 234 235 236   další » ... 302

Tiež KT používam už častejšie na jedinečné záznamy. Napr. aj tu som to použil. Stačí to aj bez makra, na skrytom liste nechať niečo ako v danom príklade list Seznam a potom už stačí iba Definovaný názov napr. :
=Seznam!$A$1:INDEX(Seznam!$A:$A;COUNTA(Seznam!$A:$A))
=Seznam!$A$1:INDEX(Seznam!$A:$A;POČET2(Seznam!$A:$A))

Pre prípad aktualizácie - Údaje - Obnoviť všetko.

Možno si tam nájdete nejakú inšpiráciu. Netuším, čo to chcete vlastne robiť s tými súbormi ... preto je to len tak z brucha ...

Ak tie dáta importujete z nejakého súboru, tak tam mâte možnosť zvoliť oddeľovače.
Z Vašeho príspevku som tiež nepochopil, či bunka obsahuje aj bodku (tisíce) aj čiarku (desatiny), alebo 2 bodky...
Záleží na tom ako to presne máte, vyššie menovaný prípad by sa dal aj pomocným dočasným stĺpcom
=VALUE(SUBSTITUTE(D1;".";""))
=HODNOTA(DOSADIT(D1;".";""))

xlnc: Odkrývať ich v novom WB chceme/musíme, inak by to nešlo :)
Zaujímavý spôsob vytvorenia čiselného poľa pri Delete. Dobrá inšpirácia.

xlnc: To je super, o tom som netušil, aspoň polovička je ušetrená. Škoda že nejdú hromadne odkryť.

Ešte poznámku: Stretol som sa dávnejšie s problémom, ktorý nastal pri takomto kopírovaní, ak bola na liste Tabuľka (ListObject), a pomohlo len dočasné vypnutie .Calculation, preto som to v makre naznačil.

Sub Vytvor_Novy2()
Dim Cesta As String, LST, Pocet As Integer, i As Integer

LST = Array("List1", "List2", "List3") 'Pole listov
Cesta = ThisWorkbook.Path & "\"

With Application
.ScreenUpdating = False: .DisplayAlerts = False ': .Calculation=xlCalculationManual

With Workbooks.Add 'Nový súbor
Pocet = .Worksheets.Count 'Počet vytváraných listov
ThisWorkbook.Worksheets(LST).Copy After:=.Worksheets(Pocet) 'Skopíruj listy

For i = 0 To UBound(LST) 'Zviditeľni listy
.Worksheets(LST(i)).Visible = True
Next i
For i = 1 To Pocet 'Vymaž defaultné listy
.Worksheets(1).Delete
Next i

' iné práce na novom súbore

.SaveAs Cesta & "Nový súbor.xlsx" 'Ulož a zatvor
.Close
End With

.ScreenUpdating = True: .DisplayAlerts = True ': .Calculation = xlCalculationAutomatic
End With
End Sub

Ten vzorec funguje cca takto:
-časy sú na 3 desatinné miesta,t ak si ich vynásobíme *1000, a dostaneme celé číslo napr. 36,391*1000 = 36391.
-k tomu si na koniec prilepíme 6 miestne ID, napr ID = 000123, teda dostaneme text 36391000123.
-z toho si urobíme cez VALUE/HODNOTA čísla. Teda máme pripravené spojené čísla vyhovujúce podmienkam, kde pravá šestica je ID.
-zoraďovanie ale prebieha zľava, teda cez SMALL vyberieme požadované poradie od najmenšieho, a keď nám ho dá, urežeme si z neho poslednú šesticu, teda ID, a tento text si zkonvertujeme opäť cez VALUE/HODNOTA na číslo.
- a toto už normálne hľadáme cez VLOOKUP/SVYHLEDAT
-a ak správne premýšľam, nemalo by vadiť ani, ak by boli niektoré časy 5 číselné a iné 6 číselné (ak by bol niekto pomalý)

Snáď som to popísal pochopiteľne.

Ďalšia vec, ktorú neviem či ste si všimol je, že pri hľadaní verzie trate som nevedel, či môže byť v jeden deň viac verzií trate. Lebo teraz je to tak, že sa hľadá maximálne čísle verzie trate v poslednom dni (maximálny dátum) danej lokality. Ak môže nastať to, že v posledný deň danej lokality bude viac verzií, a posledná verzia bude menšia ako iné verzie toho dňa, tak vzorec vráti zlé číslo. To ešte upresnite, napadá ma možno jedno riešenie.

napr.

Ak sa použije toto:
Sheets(Array("List1", "List2", "List3")).Select
ActiveWindow.SelectedSheets.Visible = False

tak ich schováte naraz, ale naopak to urobiť neviem či pôjde.
Podľa toho či použijete kombináciu s ActiveWindow alebo ThisWorkbook dostanete chybu 1004 (Nie je možné nastaviť vlastnosť Visible triedy Sheets) alebo 438 (Object doesn´t support this property or method).

A naopak ak sa pokúsime použiť na schované listy
Worksheets(Array("List1", "List2", "List3")).Copy
Dostaneme 1004 (Metóda Copy triedy Sheets zlyhala).

Nechce sa mi to ďalej skúmať. Ak použijete ScreenUpdating = False máte to za okamžik aj po jednom.

Áno, to som robil len pokus. Musíte to použiť po jednom. Skryť by sa dali naraz, ak by ste použil na ne najskôr Select, ale ten je pomalý. Pri odkrývaní to použiť nejde. Takže viete, ktoré treba použiť. Som len na mobile, takže iba toľko.

Pri výpadku internetu ale nebude predsa fungovať žiadna možnosť. Nechce sa mi to teraz testovať, len hypotéza, ale tá bunka so vzorcom nehodí chybu #ODKAZ keď nenájde zdroj ?

Napr...

Najrýchlejšie, najčistejšie, najjednoduchšie riešenie bude, ak si na získanie tejto hodnoty vyčleníte jednu bunku na liste, alebo skrytý list. Makrom tam vložíte patričný vzorec za 0,1 sek, a za ďalšie 0,1 sek máte výsledok. S tým ďalej pracujete vo vzorcoch či makrách. Odporúčam túto možnosť - nazývam to "dolovacia" bunka.

Tak?

Na ktorom riadku to havaruje, a čo to píše ? Nenatiahne sa iná hodnota ako Integer ?

Tak ma nakoniec niečo napadlo aj na rovnaké časy bez pomocného stĺpca - zlúčenie upraveného času a ID.


Strana:  1 ... « předchozí  228 229 230 231 232 233 234 235 236   další » ... 302

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