Flintu do žita len tak nehádžem, ale pri Vás ju tuším aj zakopem :)
Tak ešte raz, dokola, čo so Vám písal minule, aj predminule s kontrolou 0 a 1 ...
Makro nedostane žiadnu indíciu o tom, že sa zmenila nejaká bunka vzorcom. Makro dostane iba informáciu, že sa prepočítava celý list - procedúra Calculate. Makro netuší nič o Vašej požadovanej informácii, či sa zmenila niektorá bunka v A na 0.
Preto som sa Vás minule pýtal, čo spôsobuje zmenu. Nepozerajme sa teraz vôbec na stĺpec A. Kašle naň pes. Je to výsledok podľa buniek J a K. Teda otázka znie :
Čo spôsobuje zmenu v J a K ? Je tam vzorec, alebo tam vpisuje hodnoty makro či Vy ručne ?
Ak je tam vzorec, tak aký ? Pozrime sa na bunky v tom vzorci, a nájdime takú ktorú mení makro alebo Vy. Prečo ? Lebo ak je zmenená nejaká hodnota makrom alebo Vami, tak VBA dostane indíciu, ktorá presne bunka bola zmenená. A keď budeme vedieť, ktorá bola zmenená, začneme podľa vzorcov v J a K (alebo v iných stĺpcoch, neviem kam až sa dostaneme po manuálne zapisovanú hodnotu), podľa náväznosti vypočítavať, čo je v A.
A sme doma, lebo zistíme, že bola vlastne v konečnom dôsledku zmenená 0 v A.
Chápete?
Ak totiž nikde nebudete vkladať ručne hodnotu, ale všetko čo je naviazané na A bude iba vzorcami, napadá ma okrem toho čo som Vám písal minule (nechať niekde v liste kópiu starých dát a pri každej Calculate ju kontrolovať - pomalé), ešte možnosť pri otvorení súboru načítať do Poľa tabuľku z listu, a pri každom Calculate kontrolovať - tiež pomalé, ale rýchlejšie ako kontrolovať všetky bunky v liste.
Ak to nezistíte, ktorá bunka bola zmenená, tak Vám bude makro v Calculate odosielať mail neustále, aj pri zmene bunky v B alebo C, proste ktorejkoľvek,
nie iba v A, ako potrebujete!
Chápeme sa, ale bo zase nič ?
Teda teraz napíšte, čo je v J a v K, ak je tam niekde vzorec, napíšte čo je v bunkách použitých vo vzorci, ... opakujte až kým neprídete po nejakú bunku menenú bez vzorca.
citovat