Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  215 216 217 218 219 220 221 222 223   další » ... 289

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.

Bez pomocného stĺpca. Ale všetky verzie majú úskalie. Keď bude viac rovnakých časov medzi prvými 5, nebude to správne fungovať. To žiaľ zatiaľ neviem vyriešiť.

Nechal kvôli veľkosti súboru iba 100 riadkov v dátach. Tak si tam najskôr skopírujte dáta a aktualizujte obidve KT.

menu Vývojár - Režim návrhu - označte TextBox

ďalej buď
1.) - spustite Editor VBA (ľavý Alt+F11) - záložka Properties (ak ju nevidíte tak menu View - Properties Window)
alebo
2.) - pravý klik na TextBox - Vlastnosti

- a tam položky začínajúce na B..., prípadne Font atď.

Nezabudnite potom vypnúť Režim návrhu


Strana:  1 ... « předchozí  215 216 217 218 219 220 221 222 223   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

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

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49