Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  185 186 187 188 189 190 191 192 193   další » ... 287

Skúste pridať pred with
Application.EnableEvents = False
za End With
Application.EnableEvents = True
a namiesto
.Columns(Stlp)
dajte
.Columns(Stlp).Resize(, 3)

Teda stôl. Či ?

Ak sú tie hodnoty v bunkách výsledkom vzorcov, prečítajte si svoju poslednú vetu, a musíte prísť na to, že to nieje možné. Ak to nie sú výsledky vzorcov, ale zadané hodnoty, tak skúste označiť oblasť, ktorej sa to týka, a Domov - Nájsť a vybrať - Nahradiť.

Skúste. Ukladá sa to pri každej interakcii, aj pri zatváraní. Ak to spadne pri nejakej udalosti, stále je uložená verzia pri poslednej udalosti (START, STOP, uloženie, mazanie).
Pridal som ešte kontrolu časomiery pri zatváraní zošitu.
Urobil som pár zmien, hlavne kvôli neštandardnosti chovania Excelu pri ukladaní cez makro a samotný Excel (bol rozdiel v BeforeSave procedúre). Chovalo sa to divne, ale teraz je to už OK. Teda snáď. Otestujte.

Len si ešte premyslite to zaokrúhľovanie. Či sa má alebo nemá počítať s haliermi. Lebo napr 5 min * 1,33 = 6,65. Počíta sa iba 6 Kč alebo sa má počítať aj tých 65 halierov? Alebo sa má zaokrúhľovať na celé päťdesiatniky 6,50 alebo pod ,50 dole (6,-) a nad ,50 hore (7,-) ?

A ešte rada, aby ste nezsasahoval bez korekcie kódu do rozloženia dát na liste. Makro počíta s presným rozmiestnením, tak ako je teraz. Teda napr. by ste chcel pridať stôl, treba poupraviť makro. Akékoľvek pokusy s nejakými zmenami, aj keď ich môžete bez následkov robiť málo, robte na kópii súboru. To tak treba robiť vždy, keď makro súbor ukladá. Mohli by ste si nevedomky prepísať dôležité dáta.

Ak by ste ako nadriadený chcel napr. vymazať iba niektorý riadok z databáze, tak odomknite list, označte celý riadok za jeho uško (to číslo), pravý klik a Odstrániť, súbor uložte a je znovu zamknutý. Zmenší sa tým o odstránený riadok vzorec v súčte I1. Aj to sa dá vyriešiť viacerými spôsobmi napr.:
=SUM(INDIRECT("E10:E20000"))
=SUMA(NEPŘÍMÝ.ODKAZ("E10:E20000"))


alebo maticový vzorec (po napísaní Ctrl+Shift+Enter)
=SUM(E9:INDEX(E:E;MAX((E:E<>"")*ROW(E:E))))
=SUMA(E9:INDEX(E:E;MAX((E:E<>"")*ŘÁDEK(E:E))))

Skúsim zjednodušene: To, že ho odomknete cez Revíziu, nieje problém, problém by bol, ak by ste ho znovu cez Revíziu zamkol. Zamknutie zakazuje všetko, okrem výberu buniek. Zamykanie cez makro má jeden parameter navyše
UserInterFaceOnly
,ktorý zabezpečí, že všetko je zamknuté len pre užívateľa, nie pre makro. Excel cez Revíziu tento parameter nezadá, teda zamkne list aj pre makro, ktoré potom samozrejme nebude fungovať.
Ja som počítal s tým, že sa nebude nejak často meniť cena, alebo vzorce a pod, ale aj tak som tam zakomponoval, že stačí súbor uložiť, a je zase korektne zamknutý (s tým parametrom povolenia úprav pre makro).
Teda si ho môžete odomknúť, len ho zamknete tak, že súbor uložíte.

Celý kód si môžete pozrieť keď stlačíte ľavý Alt+F11, vľavo hore si vyberiete Váš VBAProject(názov súboru), a stlačíte to + a vypýta si to heslo do makra, ktoré je teraz
abc359
Toto heslo si teraz môžete zmeniť na iné v Tool - VBAProject Properties - Protection - dole 2x vyplníte nove heslo do makra - OK - uložte súbor.

Vo všetkých častiach, je nejaká časť kódu:
Microsoft Excel Objects - Stoly (Stoly)
Microsoft Excel Objects - ThisWorkbook
Forms - frmPass
Modules - modStoly

na všetky stačí dvojkliknúť, len na frmPass treba pravý klik a View Code.

V tom poslednom modStoly, sú na začiatku 2 konštanty
PSW = "abc359"
PSWDB = "359"


PSW - je heslo, ktorým je zamknutý list (toto heslo použijete aj pri odomykaní v Revízia)
PSWDB - je heslo, ktoré sprístupňuje vyčistenie databáze

Môžete si ich tu zmeniť, súbor po zmene uložte. Ale pozor, pred zmenou hesla PSW je potrebné list najskôr odomknúť pôvodným heslom PSW (buď v Revízia, alebo spustením makra Odomknut v module modStoly (kurzor do makra Odomknut, a F5). Toto ale predpokladám urobíte tak raz.

Počítanie ceny : Je to nastavené na zaokrúhlenie dole. Teda vynechá desatinnú časť. Neviem ako to chcete, zatiaľ som to urobil takto.

Jediné čeho jsem si všiml po opětovném zamčení, že konečná cena nebyla fixovana a po opětovném zapnutí stolu se nulovala.

Tomuto nerozumiem. Skúste popísať inak.

Po stlačení stop sa suma a časy nenulujú naschvál (iba po stlačení START), aby personál hneď videl výsledok, aj keď ten vidí vždy aj v spodnej časti, ale tá sa dá omylom nascrolovať. Kľudne sa to dá urobiť tak, že po STOP sa všetko zapíše do databázy dole, a hore sa to okamžite zmaže. To nieje problém.

Urobil som ešte nejaké malé korekcie.

Rozmýšľam ešte, že by som tlačítko Vyčistit nahradil za Administrace, kde by bola aj možnosť jednoduchého odomknutia/zamknutia listu, zmeny hesiel, vyčistenia, ale už sa mi nechce.

A celé makro sa mi už vôbec nechce popisovať vysvetľujúcimi popismi ...

Ja som to dnes pojal takto.
heslo na vstup do makra a listu je "abc359"
heslo pre čistenie časov a DB je "359"

Neodomykajte list s tým heslom "abc359" cez kartu Revízia. Pri následnom zamknutí Excel potom nesprávne nepovolí zmeny ani makru.
Vlastne to ani nepotrebujete nijak odomykať, len pri zmene hesiel.

No s tým Vašim súborom som začal teda pracovať, a prišiel som na množstvo čiastkových problémov, a poprerábal som tam veľa vecí. Nechce sa mi to písať všetko. Mám tu rozrobenú verziu, pozrite sa na to, či by to takto mohlo byť, a či ísť týmto smerom. Je tam úplne nový algoritmus zoraďovania oddelení, ktorý už nerozbíja podmienené formátovanie, mali ste tam nesprávne oblasti v súčtoch operácií, teda Vám to dávalo zlé výsledky v niekoľkých súčtoch. Proste kopec vecí.

Ale aj tak mi to príde stráášne zložité. Napr. ak by nemuseli byť tie oddelenia v zadanom poradí, tak by sa dal na zlúčenie (zaradenie novo dopísaných) namiesto tohto relatívne zložitého algoritmu použiť obyčajný filter, a aj tie poradové čísla by sa nemuseli makrom riešiť, mohol by ich riešiť vzorec COUNTIF.

Spočítavanie času mi príde divné. Na jednom liste pripočítate k celým hodinám za jednotlivé oddelenia, aj počet hodín za zvyškové minúty v oddeleniach dokopy. Ale v druhom liste, už s nimi nerátate. Ja by som to prerobil na zadávanie časov vo formáte 3:30, 1:45 v jednom stĺpci namiesto 3 + 30 a 1 + 45 s samostatných stĺpcoch.

Chcete tam počítať skutočne s počtom pracovných dní, alebo tým máte na mysli počet dní mesiaca. To je rozdiel.

Upravené PF, overenie dát, vzorce ... inak vzorce sú robené tak ako sú, kvôli tomu, že na základe vzorcov SUMPRODUCT, formátu súboru, a pod, predpokladám nasadenie v Office 2003, ktorý nemá niektoré novšie funkcie ako SUMIFS/COUNTIFS.

atď...

Vyskúšajte, dajte vedieť. Je to iba rozrobená verzia, pokusy robiť VÝHRADNE NA KÓPII DÁT V SAMOSTATNOM ADRESÁRI, kvôli prepisovaniu súborov.

Sákriš, ide Vám to stiahnuť ? JA dostanem vždy hlášku

Vámi požádovaná stránka nebyla nalezena.

Čo obsahuje, kam odkazuje, pomenovaná oblasť ?Range("kl_1_vyrizeneUvery")
a návazne aj "oblast"... nerozumiem tomu posunu, vzájomnej pozícii týchto 2 oblastí a následnej veľkosti.
Pole definujete ako
kl_1_vyrizeneUvery() As Variant
ale priraďujete do nedefinovanej premennej
kl_1_vyrizeneUveryPole

Skúste uviesť nejaký príklad dát. To musí ísť, aj keď niekedy nastanú "nezmyselné" problémy ako písal xlnc.

Naozaj ste skúsil obyčajnú podmienku?
=IF(A3>=0;"Kladné";"Záporné")
=KDYŽ(A3>=0;"Kladné";"Záporné")

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Bunka
Set Bunka = Intersect(Columns(1), Target)
If Not Bunka Is Nothing Then
Cells(2, 16).Value2 = LCase$(Replace$(Left$(Bunka.Cells(1).Value2, 11), "/", ""))
Set Bunka = Nothing
End If
End Sub

To sa dá určite viacerými spôsobmi rozdeliť. Mňa napadli ešte 3 vzorce, sú trošku kratšie ako ten Váš.

Ak by tam tie mená zdvojené neboli, šlo by to ľahko cez KT, tú by ste si obnovoval cez tlačítko, ale žiaľ ...
Potom teda tak ako to máte, by to šlo poriešiť napríklad pomocou jedného pomocného stĺpca (schovajte si ho) vo výsledkovom liste, a vzorcami s dostatočným počtom riadkov (teraz je 1000, ale to podstatne zvyšuje veľkosť súboru). Dáta sú zaradené bez makra a bez kliknutia na tlačítko na obnovenie.
Išlo by to ale možno aj cez PQ...
Neviem, čo by Vám viac vyhovovalo.

To mepexg : Parádne ... 1

príklad


Strana:  1 ... « předchozí  185 186 187 188 189 190 191 192 193   další » ... 287

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

Vyhledání buněk a kopírování do druhého listu

matusup • 15.5. 10:13

Relativní cesta - zdroje Power Query

elninoslov • 15.5. 9:44

Relativní cesta - zdroje Power Query

Alfan • 15.5. 8:46

Přidat dny

Baja • 15.5. 8:17

Vyhledání buněk a kopírování do druhého listu

elninoslov • 15.5. 8:15

Přidat dny

elninoslov • 15.5. 8:11

Vyhledání buněk a kopírování do druhého listu

matusup • 15.5. 7:25