??? Čítali ste čo som pripísal do toho súboru červeným písmom na boku ?
Podmienené formátovanie nič nevykonáva. Iba podľa zadaného dátumu v B1 označí riadok, ktorý korešponduje so zadaným dátumom. Nič s dátami nerobí.
Potrebujete to všetko ošetriť makrami - teda programovacím jazykom VBA. Ja som Vám tam na ukážku naprogramoval to, že Vaša tabuľka je "akože databáza". A pri zmene dátumu v B1 sa do buniek R2 S2 T2 U2 načítajú tie dáta z "databázy".
Naopak pri zmene buniek R2 S2 T2, sa to čo do nich napíšete, zapíše do "databázy" do riadku, ktorý korešponduje so zadaným dátumom v B1.
Dátum, ktorý chcete upravovať, napr. pol roka dozadu, zadáte do B1. Do RSTU sa Vám načítajú hodnoty z o zadaného mesiaca. Môžete ich upraviť, a oni sa zapíšu na miesto v databáze, ktoré korešponduje so zadaným dátumom, teda prepíšu pôvodné.
Navrhujem rozdeliť stĺpec I na 2 stĺpce, kde bude rozpísaná suma za vodné a služby, keďže je predpoklad zmeny.
Netuším, ako Vám to inak vysvetliť. Ale mám dojem, že ste nečítal, čo som Vám napísal v súbore, a hlavne ste to asi neskúšal
Ešte by som navrhoval zaviesť databázu na druhý list, a do Vašej tabuľky ťahať data podľa kritérií v B1 pomocou VLOOKUP/SVYHLEDAT. Ale máte tam ďalšie 2 tabuľky s rôznymi informáciami, ktoré možno bude treba tiež odkladať...
A skôr ako sa opýtate : Zatiaľ netuším, kedy by som si na Vás urobil čas :(
To by som videl jedine na makro.
A prečo by to mal byť problém ? Ľavý Alt+F11, alebo karta Vývojár (ak ju nevidíte treba ju v Možnostiach zobraziť)-Visual Basic. A tam si nájdite makrá, ktoré sú buď v moduloch alebo priamo pod jednotlivými listami.
Napr...
lubo: Veľmi zaujímavé riešenie, a bez matice. Pomocou MATCH/POZVYHLEDAT sa dá nájsť Index nálezu, a VLOOKUP/SVYHLEDAT rovno hodnota. Pekné, pekné.
Len tak z brucha bez PC, skúste maticovo
=INDEX(A1:A1000;MAX((A1:A1000<>"")*(ROW(A1:A1000))))
Dajte prílohu, nech vidíme, či nejako makro neexitne Vaše udalosti.
Rozdielne sú deklarácie API funkcií. Od Office 2010 treba používať "PtrSafe" a niektoré parametre niektorých API sú namiesto Long - LongPtr.
Trochu bordel, ale to už je pokročilejšie. Keď sa po to dostanete, budete už vedieť použiť aj podmienený debuging (alebo ako sa to môže v Exceli volať), kde sa určuje pomocou # čo sa má použiť.
Link napr tu
=SUMIF(A1:A12;"<"&TODAY();B1:B12)
=SUMIF(A1:A12;"<"&DNES();B1:B12)
A čo tak takto ?
Aha, ono mi to nevložilo prílohu... Tak tu je. A pochopil ste ma správne.
Ďalšie 2 možnosti:
=INDEX(B1:B3;MATCH(C1;A1:A3;0))
=INDEX(B1:B3;POZVYHLEDAT(C1;A1:A3;0))
=VLOOKUP(C1;A1:B3;2;FALSE)
=SVYHLEDAT(C1;A1:B3;2;NEPRAVDA)
A keď často meníte položky v rozbaľovacom zozname (Overenie dát), tak asi meníte aj ich počet, teda si dajte Definovaný názov na aktuálny rozsah. Najjednoduchší mi príde ten VLOOKUP/SVYHLEDAT v kombinácii s dynamickým rozsahom. Skúste dopísať alebo vymazať položku v zozname, a uvidíte rozdiel medzi dynamickým J1 a nedynamickým rozsahom C1.
Skúste niečo takéto
Len tip :
Ak to potrebujete vykonať pre pre ten list, na ktorý práve skáčete cez to "data" v Goto, tak ten je práve aktívny. Teda skúste
ActiveWorkbook.ActiveSheet.SortFields.Clear
tak?
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.