Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  236 237 238 239 240 241 242 243 244   další » ... 286

Problém to samozrejme je. Aj pridávanie aj vymazávanie riadkov. A docela slušný problém. Môže nastať množstvo situácií, môže byť vložených alebo vymazaných viac riadkov naraz, musia byť opravované chýbajúce dátumy a týždne pri výmaze 1. zlúčeného riadku v nich, opravované orámovania, slúčenia oblastí, musí byť na výber, ku ktorému dátumu sa pridá riadok, ak ho vložíte medzi dátumy, kontrola, či sa nejedná o 1. dátumový riadok (2. riadok celkovo), atď ...

Takže som Vám urobil poslednú verziu, je to už slušne zložité na to, aby človek odhadol a ošetril čo najviac eventualít ktoré môžu nastať. Chcete totiž neštandardnú vec (s tým zlučovaním a orámovaním).

Vyskúšajte, dajte vedieť.

To je zaujímavé makro, a dalo by sa asi použiť, ale stále ho nemám ako spustiť. Musí sa spúšťať samé po napísaní znaku. To som potreboval aj ja, aj Alfons. 7

No to bolo tak, že som potreboval, aby sa písalo farebné písmo, a to tak, že každé písmenko bude mať inú farbu. Je šumák, či by bola v makre cez pseudonáhodnú fnc vyberaná z celej škály, alebo len z nejakej skupiny farieb. To je najmenej. Ale ako za letu, počas písania, vždy zmeniť farbu buď práve napísaného, a prednastaviť farbu pre budúce písmenko. Proste dôležité bolo, aby to menilo hneď pri písaní znaku, nie tak, že by som napísal text a použil nejaké formátovanie alebo makro na celý text hromadne. A bol som nahraný ako sane v lete.

Vo Worde nerobím takmer nič, ale dávnejšie som potreboval urobiť, aby mi po napísaní znaku (akéhokoľvek, teda stačí stlačenie klávesy) zmenilo farbu písma. Nič také som nedokázal vo Worde naprogramovať. A ani na nete som nepochodil. Vo Worde sú veci inak ako v Exceli. Pochybujem, že to bude zrovna jednoduché, keď vo VBA Wordu myslím nieje KeyPress (a ostatná Key rodina). Ak by niekto vedel, tiež ma to bude zaujímať.

Takto nejako ?

Vyskúšajte túto verziu. To je verzia kde sa objaví pri každom zatržítku tlačítko, ktoré zapíše len tej jeden riadok na ktorom je. Ostatné riadky, aj keď majú svoje zatržítko zaškrtnuté, tak sa nezapíšu stlačením tlačítka na inom riadku. Takto ste to myslel ?
Ak nie tak naozaj nerozumiem, prečo musí mať každý riadok vlastné tlačítko. Ak chcete zapisovať naraz všetky zaškrtnuté riadky, tak potom treba použiť iba jedno jediné tlačítko pre všetky riadky.
Inak musí tam byť skrytý stĺpec T, pretože inak nezískate klik na klasický CheckBox, a ten klik potrebujete zachytiť na určenie viditeľnosti tlačítka.

Ak to chcete inak, ako som opäť z kryštálovej gule vyčítal, tak to prosím popíšte inak, lebo napr. Vaša posledná veta je sama sebe podľa mňa v rozpore (jedno vs všetky).

A ešte napíšte aj to, či chcete po zápise poposúvať nezapisované (teda nezaškrtnuté) a/alebo zaškrtnuté ale nezapisované, na miesto nad nimi, ktoré sa uvoľnili. Tu si ale treba uvedomiť to, že čísla tlačítok sa meniť pri posúvaní nebudú, takže ak sú to nejaké výrobné linky, stoly, boxy, koše, police, tak to nieje vhodné.

Ak tam nemate rovnaké miesta, na radenie to nemá vplyv. Radenie s tým iba proste počíta. Odmenu Vám to tam predsa dáva tak ako je treba, len keď chcete namiesto prázdnej bunky mať 0, tak zmente v danom stlpci vo vzorci "" na 0. Podľa mňa to funguje presne ako ste chcel. Povedzte ešte ktoré stlpce v tej zdrojovej tabuľke potrebujete, ostatné zrušíme, a prípadne upravíme vzorce. Žiadne makro nepotrebujete. Ani potrebu dalšieho stlpca nevidím. Alebo Vám to vzor ami nevyhovuje?

A o ktoré zaškrtávacie políčko sa má jednať ? Sú tam 2. Alebo ich tam bude 6, čiže na každom riadku jedno, a aktivácia tlačítka prebehne ak je hociktoré z nich zaškrtnuté, a opačne deaktivácia prebehne ak sú všetky nezaškrtnuté ?

Alebo, a to skôr, to bude tak, že tlačítko sa aktivuje pri ktoromkoľvek zaškrtnutí, ale s tým, že tlačítko vykoná zápis iba zaškrtnutých riadkov, tie potom zmaže, a nezaškrtnuté riadky nechá a poposúva ich (ak medzi nimi ostala medzera). Že to bude takto ?

Na to si ale budem musieť nájsť viac času. Možno večer...

EDIT: A hodnota CheckBoxu sa zisťuje z prepojenej bunky, a taká nieje tak napr. takto:
Abs(Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value > 0)
Ale je nanajvýš vhodné si premenovať CheckBoxy na vlastné názvy, nenastane kolabs pri prenose na inojazyčný Excel.
Nájsť a vybrať - Tabla výberu - dvojitý klik (nie dvojklik)

Zo srandy som na to pozrel, a hneď ma napadla možná "nekalosť", v našich končinách žiaľ hojne zaužívaná - stáčanie km.
Vzorec od pepe74287 hľadá maximálne km, čo by malo byť aj správne a logické. Ak chcete skontrolovať, či najväčšie km má posledný záznam vozidla, použite tento
SK
=INDEX($B$2:$B$11;MAX(($A$2:$A$11=D2)*(ROW($A$2:$A$11)-1)))
CZ
=INDEX($B$2:$B$11;MAX(($A$2:$A$11=D2)*(ŘÁDEK($A$2:$A$11)-1)))

Ak potom odčítate vzorce od seba musíte dostať 0, ak nie, nieje niečo v poriadku, buď omyl, podvod, dáta do DB zadané v zlom poradí, ...

Tu je ten príklad bez makra. je tam aj súbor s makrom, v ktorom som si vytvoril tie odkazy, aby sa nemuseli ručne, a potom sa to používa bez makra, ale je v tom háčik. Súbor, je kvôli tým 5000 odkazom obrovský (4,1 MB).
http://uloz.to/xxHuRpY2/ext-rar

Tak keď bude čas, pozriem ešte na tú makro-verziu s ExecuteExcel4Macro... prípadne Worksheet_Change.

@marjankaj: No to určite, ja práveže slovné úlohy takmer nikdy nedokážem "dešifrovať" 5

EDIT:
Tak do prílohy dávam ešte riešenie pomocou makra s detekciou zmeny údaju v A, a automaticky priradí do B správny odkaz, kopírovanie vzorca postráda zmysel.
A ešte verziu s ExecuteExcel4Macro v UDF (s u niekoho problematickým Excel.Application objektom), ktorú si síce môžete nakopírovať vložiť kamkoľvek s parametrom bunky ktorá obsahuje číslo súboru, čiže je to kopírovacie ťahaním, ale má to jedno veľké mínus. Nedajú sa vypnúť hlášky o nesprávnom odkaze. Resp. som neprišiel na to ako. Vypnúť DisplayAlerts ani EnableEvents nezaberá.

No cez tablet bez makier sa to nedá vysvetliť, snáď, keď bude čas... Fubguje to OK, a vysvetlenie spáchame inokeky.

Ja som to pochopil výnimočne hneď , s tým sa musím pochváliť, lebo to sa nestáva 5 .
Teraz k veci, mám niečo už rozrobené, žiaľ nedostatok času, aj teraz len z tabletu ...
1. Makro použijeme tak či tak.
2. Makrom môžeme do pomocného listu vytvoriť 5000 odkazov na súbory, tak že v A bude číslo (názov súboru), a v B link na hodnotu v súbore. Makro potom vymažeme, súbor bude bez makra.
3. V hlavnom liste hlavného súboru v B, použijeme VLOOKUP/POZ.VYHLEDAT.
=VLOOKUP(A1;LinkList!A1:B5000;2;0)
Do A si zadáme zošit, ktorý chceme, vzorec bude kopírovateľný, bude to bez makra, a rýchle.
4. Len treba zabrániť hláškam o neexistujúcom prepojení, keď bude dopredu viac prepojení pre prípad pridávania súborov.
5. Môžeme v udalosti Worksheet_Change v A odchytiť zmenu a makrom vložiť do B správny link, v tomto prípade kopírovanie vzorcov netreba, stačí napísať názov súboru do A. Nevýhoda je, že prídeme o Undo funkciu.
6. Môžeme použiť ExecuteExcel4Macro, kde musíme buď vytvárať novú inštanciu Excelu v každom volaní UDF, alebo sa použije globálna premenná inštancie, čo je podstatne rýchlejšie. Súbor bude bez otvárania, vzorec kopírovateľný.
7. Použiť ADO Record na ťahanie dát ale rovnako makrom v UDF, čo má tiež značnú réžiu.

Ja som za uskutočnenie krokov 2, 3, 4. Len ako vyradiť tie hlášky a nutnosť vyberania umiestnenia pre 5000 súborov.

A nemôžete použiť ComboBox ActiveX ?

Áno. Otvorte si zošit v ktorom sa chcete odkazovať. Otvorte si aj ten na ktorý sa chcete odkazovať. V tom, v ktorom budete písať vzorčeky, si ich napíšte tak, že pri písaní vzorca pri potrebe odkazovať na iný zošit sa do toho zošitu prekliknete na miesto ktoré potrebujete, a pokračujete v písaní vzorca. Enter. Ten zošiť z ktorého sa mali ťahať dáta zatvorte. Vzorce v zošite, kde ste ich písal by sa mali samé zmeniť na vzorce s plnou cestou k súboru. A funkčné.
Má to ale množstvo obmedzení, napr, absolútna cesta, čiže nemôžete meniť cesty k súborom.

Tak skúste. Ale vidím tam opäť problém. Ak si vložíte riadok v dni, tak sa do nového riadku dátum nevloží. Dá sa odchytiť vloženie riadku, ale musí sa použiť udalosť Worksheet_Change, čo má za následok stratu možnosti Undo v zošite. Tak rozmýšľam, či by sa nedalo urobiť ešte jedno tlačidlo, ktoré by spustilo procedúru, ktorá by skontrolovala vyplnenie všetkých dátumov v skrytom stĺpci C. Čiže by ste zaviedli kultúru, že po pridávaní a uberaní riadkov v dňoch, by sa použilo kontrolné tlačítko. Zabránilo by sa nefunkčnosti podmieneného formátovania pri prípadnom odkazovaní na "prázdny" dátum v pridanom riadku. Nemali by ste tak prísť o Undo.
Ak ho užívatelia oželejú, tak to môžeme urobiť v Worksheet_Change...


Strana:  1 ... « předchozí  236 237 238 239 240 241 242 243 244   další » ... 286

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