Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  3 4 5 6 7 8 9 10 11   další » ... 285

Takže z listu "2" si urobíme šablónový list a skryjeme ho.
Dáme tlačítko na vykonanie makra.
A teraz otázky:
-V listoch majú byť vzorce odkazujúce na list "List1" alebo nakopírované hodnoty?
-Pri stlačení tlačítka, sa majú doteraz vytvorené listy všetky okrem šablóny a "List1" vymazať, a následne vytvoriť nové podľa zoznamu z "List1"?
-Ako sa tie nové listy budú volať? 2,3,4,... (prečo od 2?)? V prípade, že sa nebudú predchádzajúce mazať, tak pokračovať v číslovaní? Tu bude treba zisťovať najvyššie použité číslo...
-Budú v zošite aj iné listy okrem "List1", šablóna, a 2,3,4,... ?

EDIT:
Makro je zatiaľ prkotinka, čo už mám hotovú. Narazil som (ako inak) na rozpor, ktorý musíte objasniť odpoveďou na predchádzajúce otázky. Ak sa totiž majú listy a čísla pridávať za posledný, nie je možné tam nechať vzorce. Ten zoznam sa asi aktualizuje, teda by boli prepísaním hodnôt predchádzajúce listy neplatné (rovnaké hodnoty, ako nové). Tak dajte vedieť.

No ale to bude potrebná príloha, aby bolo vidieť, ktoré údaje v stĺpcoch daného riadku, pôjdu do ktorých buniek v novom liste. To vyzerá na rozkopírovávanie nejakého šablónového listu do kópií a premenovanie a vyplnenie údajmi. Dajte prílohu (musíte sa zaregistrovať) a urobíme nejaké makro...

Súbor - Možnosti - Panel s nástrojmi Rýchly prístup - Všetky príkazy - Čítať obsah buniek po stlačení klávesu Enter (SpeakOnEnter) - Pridať
A potom to týmto tlačítkom zapnete/vypnete.

Veď ten riadok V1 nemáte ako číslo, ale text. Excel Vám to tam píše v tom zelenom trojuholníčku v rohu každej bunky.
Do každej bunky vlezte (do editácie bunky) a odentrujte, alebo hromadne vynásobte 1 (ak neviete ako napíšem). Potom bude fungovať SUMIF normálne
=SUMIF($C$5:$BJ$5;BM$5;$C6:$BJ6)
alternatíva, ktorá zvládne pri súčte aj text (práve kvôli tomu, že si to vynásobí, a tým prevedie text na číslo) je:
=SUMPRODUCT($C6:$BJ6*($C$5:$BJ$5=BM$5))
=SOUČIN.SKALÁRNÍ($C6:$BJ6*($C$5:$BJ$5=BM$5))


EDIT hromadné vynásobenie 1*:
-do pomocnej dočasnej bunky si dajte číslo 1
-Ctrl+C
-označte celú oblasť C5:BJ15
-pravý klik na označenú oblasť - Prilepiť špeciálne
-zaškrtnite Hodnoty, Násobenie
-OK
-zmažte tú pomocnú bunku s 1

Rozkopírovanie vzorca:
-do BM6 zadajte vzorec
=SUMIF($C$5:$BJ$5;BM$5;$C6:$BJ6)
-na BM6 dajte Ctrl+C
-označte celú oblasť vzorcov BM6:BV15
-pravý klik na oblasť - Možnosti vloženia - Vzorce

No predsa "Použiť dátumový systém 1904". Nájdete to v nastaveniach Rozšírené.

Príklad. Stále treba myslieť na to, že je tam kladné číslo. Znamienko iba pomocou PF pre vizuál.

To je predsa jednoduché.
Terazky dávam zbrucha bez skúšania.
Namiesto číselného parametru, zakomponujte vzorec, ktorý si ten číselný parameter vypočíta.
Ten definovaný názov "zákazník" obsahuje čo? Odkazuje kam?
Je v ňom písmeno stĺpca? Teda "B" alebo "AC" atď? COLUMN(INDIRECT(zákazník&"1"))-5
SLOUPEC(NEPŘÍMÝ.ODKAZ(zákazník&"1"))-5

{to číslo 5 je korekcia indexu stĺpca, ak je tabuľka odsadená od okraja}
Alebo je v ňom "Leden", "Únor" a to sú hlavičky stĺpcov Tabuľky/tabuľky?
MATCH(zákazník;riadok hlavičky tabuľky;0)
POZVYHLEDAT(zákazník;riadok hlavičky tabuľky;0)

Vyskúšajte

Pridal som podrobný popis a nejaké funkcie a hlášky navyše...

No ja neviem. To aktualizujete iba tie hodnoty, ktoré sú označené Selectom ? A to pole je iba ako infolog a súvisí to nejako s témou "Vybrané řádky do pole"? Idete bunku po bunke, to je pomalé. Čo je slKonec? Dodajte anonymizované prílohy oboch súborov a pozriem na to, či to lepšie poberiem. Ale v stĺpcoch kde sú vzorce nechajte nejaké vzorce, tam kde sú hodnoty, nechajte hodnoty rovnakého typu. Stačí pár riadkov.

Ak sa Vám zdalo Vaše makro preplácané, tak z môjho odpadnete. 5
Samotná výkonová časť (hľadanie) je triviálna, pár riadkov. Ale desaťnásobne to zväčšuje, zneprehľadňuje a znižuje čitateľnosť a prehľadnosť práve všetok potrebný balast, ako kontroly, výpis priebehu v StatusBare, čiastkové vyfarbovanie (aby Excel nehavaroval ak oblasť obsahuje príliš veľa podoblastí) a pod., messageboxy, 25 riadkov kódu len vytvára náhodných 100K dát, ...

Zajtra keď vyjde čas a aj trochu elánu, skúsim si Váš príspevok ešte párkrát prečítať, a uvidím či urobím nejaké zmeny.

Ale ako zabrániť zmazaniu listu, ... neviem, ... nič ma terazky už nenapadá ...

Nie. Výsledok obsahuje samostatné podoblasti, a niektoré vlastnosti toho celku sa nedajú prečítať tak, že budete mať uvedený spoločný počet. Musíte si prejsť každú podoblasť zvlášť, a prečítať jej samostatné vlastnosti. Vy keď sa hneď pokúsite zistiť danú vlastnosť, dostanete odpoveď z prvej podoblasti. Preto Vás mýli, že to má 1 riadok. Nemá.

Nemusíte načítať celé dátové pole. Mne to tak prišlo jednoduchšie. Môžete načítať pre každú podoblasť jej vlastné dáta, a korigovať posun vo výslednom poli. Podľa mňa je zvolený postup jednoduchší a rýchlejší. Načítať obrovské množstvo údajov naraz je rýchlejšie, ako načítať veľké množstvo malých podoblastí.

EDIT:
Reakcia na EDIT:
Práveže Vy si musíte zistiť pre každú podoblasť jej veľkosť
rngArea.Rows.Count
viď prvý odstavec.

Zabudol som na konci zmazať definíciu, ktorú som nepoužil
Set wsData = Nothing

Inak celé sa to dá ľahko prerobiť na funkciu, ktorá Vám vráti pole hodnôt. To ma napadlo, keď ste písal, že stĺpce budú variabilné. Vstupným parametrom by bola iba adresa hlavičky.

Momentálne mám v adresári, kde si dávam takéto prílohy čo riešim Excel, 1634 súborov. Pekný bordel. Kedy sme to riešili? Však to nemôžem nájsť...

Skúste


Strana:  1 ... « předchozí  3 4 5 6 7 8 9 10 11   další » ... 285

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

Vynásobit hodnoty kurzem - Power Query

Alfan • 24.4. 16:32

Relativní cesta - zdroje Power Query

Alfan • 24.4. 15:44

Relativní cesta - zdroje Power Query

elninoslov • 24.4. 14:26

Jak odstraním duplicitní údaje

Mirek8 • 24.4. 12:13

Jak odstraním duplicitní údaje

elninoslov • 24.4. 8:57

Vyhledej

PavDD • 24.4. 8:56

Vyhledej

elninoslov • 24.4. 8:47