Poradna - Zaznamenání času změny hodnoty buňky přes VBA
hlavní kategorie | zpět | + odpovědět na toto témaZaznamenání času změny hodnoty buňky přes VBA - diskuze na toto téma |
Zdravím,
Potřebuji zaznamenat čas změny hodnoty buňky. Např: v buňce P59 se změní hodnota a v buňce C1 se zobrazí datum kdy byla hodnota v P59 změněna.
Vzorec ve VBA mám takto:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$P$59" Then
Cells(1, 3) = Now
End If
End Sub
tento vzorec mě funguje pouze v případě, že buňku (P59) sám ručně přepíšu.
Lze takto zaznamenávat v buňce (např C1) datum změny i v případě, že se hodnota v buňce mění na základě vzorce - tedy když ji nepřepisuji sám?
Přesněji řečeno: hodnota v buňce P59 je výsledná cena, která vzniká na základě několika změn ve dvou záložkách sešitu a já potřebuji zaznamenat datum změny této ceny.
Mockrát děkuji
Buď to urobíte v metóde Calculate (viď príloha, skrytý list vo VBA) s tým, že niekde musíte odkladať predošlú hodnotu, aby nedochádzalo k odátumovaniu bunky aj keď bola kalkulácia spôsobená v liste inou zmenou. Alebo to urobíte v OnChange listu, v ktorom meníte tie hodnoty, kde budete checkovať práve manuálnu zmenu buniek s parametrami, ktoré ovplyvňujú ten súčet. Odpověď Děkuji. Úplně nejjednodušší by pro mě bylo, kdyby datum sledovalo pouze změnu čísel v buňce výsledok. S tím, že výsledok nepřepisuji sám, ale mění se vždy jen na základě výsledku výpočtu. Do tabulky jsem doplnil několik parametrů + komentáře. Prosím o doplnění vzorce pro datum změny ceny. Mockrát díky Odpověď Veď tak som Vám to urobil aj predtým, len ste uviedol úplne iné adresy buniek ako teraz. Nieje možné kontrolovať len jednu vzorcom vypočítavanú hodnotu v bunke. Keď sa zmení niečo, čo ovplyvní ktorýkoľvek vzorec v liste, nastane metóda Calculate. Tá neuvádza, ktorá bunka sa zmenila vzorcom. Ona iba indikuje, že nastal prepočet v liste. Preto musíte mať niekde uloženú starú hodnotu danej bunky, aby ste v tej metóde Calculate mohol porovnať či počas Calculate (opakujem, že nevieme čím bolo vyvolané) nezmenil aj výsledok vášho sledovaného vzorca. No a ak áno, potom zapíšete nový čas a opäť odložíte novú hodnotu, ako starú, pre ďalšie porovnanie. Chápeme sa ? Takže teraz to funguje ako ste chcel. ALE. Je aj iná možnosť, že nebudete sledovať výsledok vzorca, ale zmenu parametrov. Parametre meníte manuálne, nie ? Tak tu máte oba príklady. Odpověď |