Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  280 281 282 283 284 285 286 287 288   další »

Takmer sa mi to podarilo, ALE:
-Neviem rozlúsknuť spočítanie napr. dovolenky za celý vybraný rok, vybraného pracovníka. Iba za vybraný mesiac. Nech robím čokoľvek s maticovými vzorcami, stále hádžu chybu. Niekto zdatnejší snáď pomôže.
-To isté platí o súčte hodín za rok.
-Odstránených niekoľko problémov, ako chybné formátovanie buniek, zlúčené bunky (nemôžu byť pri maticiach), posunutie tabuľky Leden o riadok (všetky mesiace musia byť rovnaké)
-Vypĺňanie tabuľky je urobené pomocou "brutálnych" vzorcov s neustálym vyhľadávaním a prepočtom pozície, dňa, hodnoty. Tu som narazil na neprekonateľný problém (asi len v mojom Exceli 2013), keď nemôžem do Správcu názvov dať komplikovanejší vzorec s vyhľadávaním VLOOKUP a MATCH. Okamžite hádže chybu. Ak to isté skopírujem do bunky, okamžite všetko funguje. Veľmi frustrujúce. Preto sú tie vzorce v tabuľke nehorázne neprehľadné, ale nebolo ich možné zjednodušiť pomocou Názvov.
-Upravil som názvy listov (mesiac + rok), neboli konzistentné
-Na listoch sú vyplnené kolónky počty hodín u dovolenky a choroby D a N, na liste "Harmonogram směn" niesú. Bral som data odtiaľ. položka Hodiny je v listoch už bez prestávky, v Harmonograme je s ňou.
-V tabuľke som urobil aj podmienené formátovanie na zvýraznenie D a N
-Doplnil som jeden celý riadok tabuľky, pretože ak mesiac začne v nedeľu, 30. 31. by sa nevošlo.
atď. atď.
-Zatiaľ som nechcel používať VBA, aj keď v ňom by to bolo oveľa jednoduchšie. Ale neviem ako inak sa bude kontrolovať, aké roky už existujú v názvoch listov, a ako získať ich zoznam inak ako cez VBA. Tento zoznam je potrebný pre výber roku.

Proste je s tým dosť veľa problémov.
Posielam súbor, snáď som aspoň v niečom niekoho nakopol k riešeniu. Určite niekto urobí oveľa jednoduchšie konštrukcie vzorcov, a hlavne by mohli byť maticové.

Ak by ti to pomohlo, spravil som ti to pomocou makra.
Cez to CHOOSE to ja urobiť neviem, tak aspoň takto.
Pekný deň.
Heslo : "-ElninoSlov-" bez úvodzoviek

Ahoj
Prosím Ťa v bodoch mi ešte raz vysvetli, čo má presne robiť tento zošit. Nejak sa v tých komentoch strácam.
Otázky:
1. Prečo názov Tabulka00 odkazuje na oblasť A36:F38. Ostatné názvy Tabulka01-07 odkazujú na farebné časti, typovo podobné. Tabulka07 ale odkazuje na A63:F70, čiže na posledné dve farebné časti. Nieje to ďalšia chyba ? Je to nesúrodé.
2. Keď do bunky B3 zadáš "A" alebo "B", tak sa ti majú zmeniť tie veľké čisla v F39:F67, podľa toho čo je napísané pod daným písmenom v modrej tabuľke "zdroj dat" teda B23:C30 ?
3. Načo je určený "prazdny riadok" 14 ?
4. Na čo je prázdny rozbaľovací zoznam v D12 ?
5. Bunky V18:V19 berú nulový dátum z neoznačených buniek B18:B19
4. Na druhom hárku spomínaš list "tabulka", ktorý neexistuje, rovnako ako tlačítko "ULOZ POCET ZAPLNENYCH BuNIEK". Myslíš tým tlačítko "spocitaj" a hárok "pocet zaplnenych buniek" ?
5. Čo bude potom s tými skopírovanými hárkami ? Pár krát použiješ stlačítko "Kopíruj" a neprehľadne veľa hárkov.
6. Máš tam pár kozmetických chýb. Riadok 66 a 70 sú dvojnásobne vysoké, F43:F54 chýba pravý rám, nevystredené písmo riadok 37 ...
7. Čo sa to má vlastne spočítať pri stlačení "spocitaj". Výsledok spočítania tej štvorbunkovej oblasti sa vynásobí počtom kópií danej oblasti v celom zošite ? Ak raz zadám 2 kópie, pritom budú označené oblasti tabulka02 a tabulka04. Vytvorí 2 identické listy, na ktorých bude po jednom kuse tabulka02 tabulka04. Keď znova vykonám kopírovanie s označením tabulka02, má ten súčet spočítať tie švorbunkové oblasti len s tých prvých dvoch identických kópií, alebo k tomu prirátať aj rovnakú oblasť z tretieho listu? Alebo sa má zrátať len súčet daných švorbunkových oblastí len v danej skupine kópií, ktoré boli na raz urobené ?
8. Budú sa v tých skopírovaných hárkoch potom nejako upravovať data ?

Je tam strašne veľa nepovadaného/nezrozumiteľného. Navyše nejaké technické a logické komplikácie. Čím viac to upresníš, tým skôr ti niekto pomôže.

Ak som ťa správne pochopil tak potom takto.

Ak slovom ZOZNAM myslíš iba rozsah buniek, tak potom asi takto - Kopiruj zoznamy.xlsm.
Ak tým ZOZNAM myslíš rozbaľovací zoznam, tak potom takto - Kopiruj zoznamy 2.xlsm.
Ale to je blbosť, lebo ten rozbaľovací zoznam, musí mať od niekiaľ data, a je predsa jednoduchšie testovať tie data ako obsah rozbaľovacieho zoznamu.

Kvôli tebe som si narýchlo urobil virtuálnu sieť. A bohužiaľ, na disku sa to správa tak ako má. Na sieti do toho vstupuje systém alebo Excel, natívnym upozorňovaním na otvorený súbor. Táto natívna featurka navyše podľa netu obsahuje bug, keďže nezobrazuje vždy korektné meno. My by sme potrebovali túto featurku (Lock Open File PopUp Message) vypnúť. Preštudoval som už niekoľko ENG fór, no zatiaľ som na nič poriadne nanarazil. Rôzne rady s odstraňovaním vlastníka súboru, vypínanie FileInfo Popup Message (neviem kde), ešte nejakej fnc, ktorej 3-písmennú skratku si nepamätám... Keď bude viac času, ešte pohľadám.

Mne to ale presne ako popisuješ funguje.

Situácia A:
Ak niekto otvorí súbor a zadá heslo, čiže pošle požiadavku na otvorenie súboru s plnými právami, čiže na zápis, tak sa skontroluje, či je záznam o tomto súbore v tom TXT zozname súborov otvorených na zápis.

Riešenie 1. situácie A:
Ak nieje záznam v zozname TXT, hneď zapíše jeho meno, názov súboru, čas a dátum do toho kontrolného TXT súboru, kde sú zapísané iba a len udalosti otvorenia súboru heslom - čiže na zápis.

Riešenie 2. situácie A:
Ak je záznam v zozname TXT, zmení príznak súboru na ReadOnly, nič sa do zoznamu TXT nezapíše, a súbor je len na čítanie. Excel napr. pri prípadnom ukladaní zmien v takto otvorenom súbore upozorní na nemožnosť uloženia.

Situácia B:
Ak niekto tento istý súbor otvorí tak, že nezadá žiadne heslo, čiže stlačí Enter na požiadavke na heslo, alebo stlačí to tlačítko "Iba na čítanie" na tej požiadavke na heslo, tak sa nič neurobí. Ani sa nič nikam nezapisuje, a Excel si sám odsleduje, že je súbor ReadOnly.

Perfektne funguje aj odmazanie riadka zo zoznamu súborov na zápis, pri zatváraní súboru otvoreného na zápis.

Prepisuješ si správne tie konštanty 2x "ZoznamSuborov" a "Cesta" ? Ja asi natočím video ako to funguje, pretože si asi fakt nerozumieme. Len teraz mám strašne veľa inej roboty. Skúste pls na to zatiaľ mrknúť aj niekto iný. Ja už fakt nestíham.

Podmienkou je prvotné uloženie všetkých tých súborov "Uložiť ako - Nástroje - Všeobecné možnosti - Heslo na úpravy - OK". A pozor na ten TXT súbor ! Ja som ho pozmenil, a v kóde funguje len opravená verzia! Bez dvojitých Tabulátorov, bez medzier v dátume, bez čiarok na konci riadku. Treba si upraviť v tých svojich súboroch aj toto ukladanie, ak to máš inak riešené ako ja.

Prepracované, doplnené, zmenené, otestované ale bez sieti. Upravil som aj zoznam súborov na zápis.
heslo pre súbor na otvorenie pre zápis je "abc" (bez úvodzoviek)
EIDT: S pripájaním do siete to bude treba zase riešiť, presne podľa toho ako sieť funguje. Je namapovaný disk v systéme ? Namapovaný vo VBA? Zdieľaná zložka na serveri ? Uživateľ pristupuje do zdieľanej zložky/na server pod menom a heslom ? Proste je to rôzne. Viď napr.:
http://stackoverflow.com/questions/27248221/access-shared-network-folder

Okrem hesla, to čo som urobil robí presne to čo chceš. O hesle si sa zmienil teraz prvý krát. A tie MsgBox som tam dal len pre to aby bolo vidieť ako som to myslel, a ktorá časť kódu čo urobí. Celú konštrukciu Case 0,1,2,3 si musíš urobiť podľa toho, čo presne chceš aby v danom prípade macro robilo.
To isté platí pre ostatné MsgBox v kóde. NEMUSÍŠ ich použiť.
Takže tie súbory budú zaheslované ? A rozlíšené to bude, podľa toho, či zadáš 1x heslo (súbor na čítanie) alebo 2x heslo (súbor aj pre zápis) ? Či si chceš obslúžiť nejakým svojim mechanizmom otvorenie na ReadOnly a ReadWrite, napr. cez vyvolanie vytvoreného formulára pre heslo ? Ale súbor bude inak bez hesla.

Človeče, to si tam vážne mal nechať názvy mužstiev. Takže ja som si tam doplnil názvy zbrucha.
- v O18 je chyba, odkazuje na riadok 10
=IF(C10="";"";IF(C10>D10;3;IF(C10=D10;1;0)))
podľa tabuľky zápasov má odkazovať na riadok 11
=IF(C11="";"";IF(C11>D11;3;IF(C11=D11;1;0)))
- Niektoré mužstvá hrajú vždy iba vonku, iné vždy iba dooma. To je ale iba kozmetika.
- Ono ti to zoraďuje správne, lebo berie do úvahy skóre. Pretože so skóre sa počíta vo vzorcoch v stĺpcoch U a V
- Najneprehľadnejší je ten SUMPRODUCT. A s tým ti práve neviem pomôcť. Ak by bolo nejaké vysvetlenie tohto použitia. Snáď to niekto "rozkódoval".

V tom mojom poslednom súbore v konštrukcii Case pre hodnotu 1 nahraď čo tam je týmto:
Case 1 ' Súbor nieje na zozname, treba napísať
If MsgBox("Otvoriť dokument v režime ""Iba na čítanie?""", vbQuestion + vbYesNo, "Iba na čítanie ?") = vbYes Then
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
Else
MsgBox ("Tento Súbor " & SuborExcel & " nieje ešte v zozname.")
'Ak sa zvolí hodnota vbNo (nie na čítanie, ale na zápis), treba urobíť záznam do zoznamu !!!
'Proste sem vlož, to čo si tam mal doteraz pre stav, keď treba zapísať do zoznamu
End If

Ak som to dobre otestoval a dobre ťa pochopil, tak stačí iba toto. Netreba žiadne uchovávanie hodnoty o "dobrovoľnom otvorení Iba na čítanie". Ono totiž ak už má dokument niekto otvorený na zápis, tak je zapísaný aj v zozname. Tento kód sa ťa ale na dobrovoľné otvorenie "Iba na čítanie" pýta iba v prípade že nieje inde otvorený na zápis . Čo je logické.

Napada ma pouzit v globalnej premennej priznak boolean na oznacenie prijimania upozornenia. Globalna premenna ale musi byt definovana v module, a v Exceli mi zial nefunguju tak ako by si clovek predstavoval. Potom vyuzivam moznost uchovania udaju v nejakej zarucene nepouzivanej bunke v zosite. Dnes ked vyjde cas, spravim.

Pridal som nastavenie príznaku "Iba na čítanie", a zakázanie uloženia zmien v prípade "Iba na čítanie". Snáď pomôže.

Mrkni na toto. Je to v procedúre Open. Nastav si cesty v premenných podľa seba. Inak v tom TXT súbore som musel "ošetriť" viacnásobné Tabulátory po sebe, čiarky na konci, prípadný Enter na prázdny riadok na konci, a medzery v dátume. Dorob si časť "Vyhodnot:" v Case konštrukcii.

No ja som to pochopil nasledovne:
- tie súbory niesú u uživateľov lokálne, ale každý uživateľ pristupuje na sieťový súbor. Uložený niekde na firemnom serveri.
- on potrebuje udržovať živý zoznam uživateľov, ktorý majú otvorený niektorý z týchto sieťových súborov na zápis. Tento živý zoznam bude tiež asi na serveri.
- problémov s tým spojených je veľa. Napr. musíš všetky Excel súbory doplniť o makro, ktoré si pri otvorení každého súboru načíta tento zoznam otvorených súborov, a zistí, či už práve otváraný súbor niekto otvorený nemá. Ak nie otvorí ho, a zapíše do zoznamu. ALE, treba ošetriť aj to, že v momente, keď niekto bude "seba" zapisovať do zoznamu, tak nikto iný ani neprečíta ani nezapíše do zoznamu nič. Neviem či takéto "bufferovanie" žiadostí na súbor, môže byť v každom súbore kontrolované a vykonané. Neviem si to predstaviť. Jedine, tak že každý súbor bude čakať na prístup k zoznamu napr. 2 sekundy, potom ukončí procedúru otvárania, lebo zoznam je zaneprázdnený (alebo preťaženie siete...)
- Neviem, či ide vlastne v Exceli pri Open procedúre, nastaviť, že sa otváraný súbor otvorí niekomu aj na zápis (ak nikto na daný súbor nieje v zozname), ale iba na čítanie (ak už na daný súbor je záznam).


Strana:  1 ... « předchozí  280 281 282 283 284 285 286 287 288   další »

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

kontrola buniek

loksik.lubos • 31.5. 20:33

KT jako text do emailu

elninoslov • 31.5. 18:35

vlastní pás karet

elninoslov • 31.5. 15:10

vlastní pás karet

stejzi • 31.5. 13:09

KT jako text do emailu

Začátečník • 31.5. 11:06

odkaz chyba

elninoslov • 30.5. 21:07

odkaz chyba

jano1 • 30.5. 20:31