Tak moment, moment...
Veď to počíta správne. Skontrolujte si tento súbor. Hodnoty som si tam pomenil. Vpravo som manuálne vyrobil tabuľku, aké by mali byť výsledky (bez prepočítavania Excelom). Vo Vašej tbl sú 3 druhy vzorcov, a všetky počítajú tak, ako by to číslo na 15-om desatinnom mieste ani nebolo. Pridal som Podmienené formáty, ktoré očervenejú, ak výsledok nesedí. Máte v tých počítaných stĺpcoch H, I, J niečo červené ?
Tak uvidíme, kde je ten pes zakopaný. Dúfam, že som myslel na všetky možné eventuality:
Sub Click()
Dim Nazev_Stlaceneho_Obrazku As String
Dim Link_Stranky As String
Dim Adresa_Bunky_Pod_Obrazkem As String
On Error Resume Next
Nazev_Stlaceneho_Obrazku = Application.Caller
If Nazev_Stlaceneho_Obrazku = "" Then MsgBox "Makro nebylo spuštěno kliknutím na obrázek nad linkem.", vbExclamation: Exit Sub
With ThisWorkbook.ActiveSheet.Shapes(Application.Caller)
Adresa_Bunky_Pod_Obrazkem = .TopLeftCell.Address(0, 0)
Link_Stranky = .TopLeftCell.Value
End With
If Link_Stranky = "" Then MsgBox "Pod obrázkem """ & Nazev_Stlaceneho_Obrazku & """ v buňce " & Adresa_Bunky_Pod_Obrazkem & " není vyplněný link.", vbExclamation: Exit Sub
On Error GoTo CHYBA
ThisWorkbook.FollowHyperlink Address:=Link_Stranky
Exit Sub
CHYBA:
MsgBox "Jiná neošetřená chyba", vbExclamation
End Sub
Vskutku. Excelu totiž namiesto
99,5 - 99,3 = 0,2
vychádza
99,5 - 99,3 = 0,200000000000003
Treba vymyslieť nejakú fintu, ako ho prinútiť počítať správne. Nepomáha ani zaokrúhlenie dole pomocou FLOOR(C4-B4;0,1). SUMIF, SUMPRODUCT, ale aj matica aj tak vyhodnotí 0,200000000000003.
Hmmm...
Koľko tam môže bežne nastať desatinných miest v C a B?
Tam treba urobiť aj opatrenia na čo najmenší počet možných zlyhaní a omylov. Príklad.
V tom prípade by mal byť ten vzorec v poriadku, akurát že Vy hovoríte o zľave a ja tam čítam slová o pokute
Riadok 8.
Nasmlouvané SLA 99,5
Skutečné SLA 99,7
Je 0,2 nad nasmlouvaným. Bude pokuta???
Raidok 4.
Nasmlouvané SLA 99,5
Skutečné SLA 99,3
Je -0,2 pod nasmlouvaným. Bude pokuta, že!
Tie stĺpce B a C sú čo? To sú už %? Alebo % si má najprv vzorec vypočítať a toto je napr. kapacita (alebo čokoľvek množstevné)?
Ak sú to % a z nich sa berie rozdiel iba pre nesplnené odbery (iba menšie) tak napr.
=IF(C4>B4;A4*IF(C4-B4>=$E$10;$G$10;SUMPRODUCT($G$4:$G$9;(C4-B4>=$E$4:$E$9)*(C4-B4<$F$4:$F$9)));0)
=KDYŽ(C4>B4;A4*KDYŽ(C4-B4>=$E$10;$G$10;SOUČIN.SKALÁRNÍ($G$4:$G$9;(C4-B4>=$E$4:$E$9)*(C4-B4<$F$4:$F$9)));0)
alebo
=IF(C4>B4;A4*IF(C4-B4>=$E$10;$G$10;SUMIFS($G$4:$G$9;$E$4:$E$9;"<="&C4-B4;$F$4:$F$9;">"&C4-B4));0)
=KDYŽ(C4>B4;A4*KDYŽ(C4-B4>=$E$10;$G$10;SUMIFS($G$4:$G$9;$E$4:$E$9;"<="&C4-B4;$F$4:$F$9;">"&C4-B4));0)
Potrebujete vypočítať "Smluvní pokuta - vypočítaná z ceny za službu" z rozdielu medzi "Skutečné SLA pro výpočet" a "Nasmlouvané SLA" ? Iba ak je skutočné menej? Alebo aj keď je viac?
Ale ono to ide, označíte ako zdroj stĺpce Tabuľky o ktoré ide. Síce vidíte ako zdroj adresu buniek, čo navodzuje dojem napevno nastavenej oblasti, ale ona sa bude dynamicky meniť, ak pridáte do Tabuľky riadok. Aspoň čo som teraz narýchlo skúsil. Celkovo použitie bude ale záležať aj od toho, čo chcete presne dostať ako výstup a z akých dát. Ak chcete napr. nejaký súčet za zamestnanca (vyskytujúceho sa na viac riadkoch), tak na to práve slúži KT, ale môžete to urobiť v pomocných stĺpcoch teoreticky s jedinečným zoznamom mien pomocou COUNTIF v jednom stĺpci a SUMIF v ďalšom.
S grafmi síce takmer absolútne nepracujem, ale to čo spomínam som terazky vyskúšal a funguje.
NeroX, veď Vám Jiří poslal prílohu s príkladom. Ale urobil by som to robustnejšie asi takto. Viď popis makra aj s nejakými odôvodneniami. Napr. maže dátum po zmazaní mena. Obsluhuje viacnásobné oblasti a viacbunkové zmeny.
Skúšal ste? Ak áno, čo nefungovalo ako potrebujete?
Neviete ako to implementovať? Dodajte prílohu. Reálnu prílohu s reálnym rozmiestnením, formátom, typom dát, rozsahom a pod, len anonymizovanú.
Je aj určitá obmedzená možnosť použiť Iteračné výpočty a vzorec, ktorý v tom prípade môže odkazovať sám na seba, ale to sa zapína v nastavení Excelu. Ak by ste potom taký súbor otvoril v Exceli, ktorý to zapnuté nemá, dostanete hlášku o zacyklených odkazoch a nebude to fungovať.
Makro má ale tiež nevýhody. Použitím makra prídete v zošite o Undo.
Vyskúšajte výhradne na kópii dát !!!
Určite si prečítajte popisy makra.
Porovnajte makro Short so zvyškom kódu.
To aby ste si vedel predstaviť rozdiel triviálneho makra vs. čo najviac robustné, zabezpečené voči omylu, pádu a poškodeniu dát.
Vzniká tu tak malý/veľký paradox, že čím viac vecí nechávate na užívateľovi, tým je makro jednoduchšie, menšie, prehľadnejšie, no nebezpečnejšie. A čím viac kontrolujete, ochraňujete, myslíte na eventuality, je makro dlhšie, neprehľadnejšie, a paradoxne tým vlastne tiež náchylnejšie na chybu - tentoraz zo strany programátora. A preto sú SW čím ďalej síce sofistikovanejšie ale zabugovanejšie, keď sa im nevenuje poriadna pozornosť a investície. Viď Windows ...
Dajte vedieť. Nezaručujem otestovanie na 100%, zase toľko ma to nebavilo...
A ak by mohol byť aj Úprava.xlsm (teda s makrom), tak by bolo možno užívateľsky dobré a bezpečné, aby videl v C2 (pomocou makro UDF funkcie) čo je v Data.xlsm na danom stĺpci za týždeň.
Toto asi možné nebude. Chvíľu som sa snažil rozbehať aspoň toto na Label-y, ale nedarí sa mi to - rezignujem.
O koľko prvkov zoznamu by sa malo jednať? Ak o pár, možno by to šlo komplikovane ofajať prekreslením prvkov cez seba s posunom, a odchyt kliku.
Presná príloha.
Ale ten Vlastný formát ste neskúšal na vizuálnu elimináciu 0, všakže nie!
General;;;
zobrazí kladné číslo áno, záporné číslo nie, 0 nie, text nie
General;General;;@
zobrazí kladné číslo áno, záporné číslo áno , 0 nie, text áno
Len slovo "General" bude v CZ asi "Všeobecný" (nie som si istý).
Všetky Vami spomenuté stránky (existujúce) mi fungujú v tom súbore, čo som Vám poslal. Žiadna nevypíše chybu. Iba jedna z nich neexistuje:
www-cns.mkcr.cz/cns_internet/
Na MKCR uvedený link existuje, no nefunkčný.
https://www.mkcr.cz/rejstriky-registrovanych-cirkvi-a-nabozenskych-spolecnosti-a-dalsich-pravnickych-osob-467.html
Priložte Vašu prílohu (anonymizovanú, so zachovaným rozložením, typom dát, formátom, zlúčeniami a pod) !
Urobte kurnik aspoň niekto niekedy na prvý krát, to čo Vám pomáhajúci radí, alebo čo od Vás chce ! Čo teda ten BreakPoint ?
Teraz som to písal aj na iné fórum - onedlho sa Vám na to milí užívatelia, tí pomáhajúci viete čo, ak nebudete spolupracovať na riešení VAŠEHO problému.
OT: Neviem či mám ísť vôbec aj čítať ďalšie témy, aký som dnes nasratý, tak Vás tu budem kosiť do radu ...
Ach ľudia, ľudia, moje chabé nervy ....
Čo znamená "Nefunguje mi to." ???
Vyhodí ten MsgBox "Chyba" ?
Makro sa zastaví na niektorom riadku? (Na ktorom?)
Makro spadne a vyhodí nejakú chybu? (Akú - screenshot)
Otvorí sa prehliadač, ale v nič v ňom nie je?
Otvorí sa prehliadač, ale stránka vypíše nejakú chybu? (Akú? - kód, screenshot)
Otvorí sa iná, ako požadovaná stránka?
Nič sa neotvorí, nič nezahlási, nič nespadne?
Skúste dať na riadok "On Error ..." BreakPoint (klik na ten zvislý obdĺžnik vedľa kódu - bordová značka) a do okna Watches si dajte
ThisWorkbook.ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
To je adresa bunky, v ktorej sa nachádza ľavý horný roh obrázku, na ktorý ste práve klikli. Je správny?
Začína ten odkaz na "https://" ?
Netreba sa na tú stránku prihlasovať?
Dajte tie linky, ktoré nejdú...
Totálne sa nechápeme. Toto som si včera pripravil, že dnes dokončím, vyskúšajte ale je to NEDOKONČENÉ ....
Nenapadá ma, ako sa mám už pýtať. Vaše popisy sú pre Vás možno jasné a pochopiteľné, keď viete čo robíte, na čo myslíte, a čo chcete. Ja to fakt netuším. Pre mňa je to zmätočný popis. Nejednoznačný. Ako môžete zapisovať do týždňa, ktorý si zvolíte, keď chcete zapisovať do stĺpca C (po novom do D). To nemá s týždňom nič. Nemám teraz chuť čítať celú tému, a vypisovať Vám sem všetky nelogické veci (ktoré sú pre mňa nelogické, pre Vás možno nie) z textu. Napr. "ze kterého sloupce chce zapsat data" - tak buď "do kterého sloupce chce zapsat data" alebo "ze kterého sloupce chce načíst data" ...
2 makrá: Už som to písal. JEDNO - načíta data, DRUHÉ - zapíše data.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.