Inregistrarea unei valori in functie de ora (formula)

gxg276
Mesaje: 20
Membru din: Joi Ian 28, 2010 11:20 am

Inregistrarea unei valori in functie de ora (formula)

Mesaj de gxg276 » Joi Ian 28, 2010 11:48 am

Va salut !
Incerc sa "inghet" o valoare dintr-o celula care se modifica in functie de ora.
Mai exact :
Folosesc un soft de pariuri sportive care exporta intr-un excel anumite valori, modificandu-le la un anumit interval de timp (in cazul de fata la o secunda). Intrebarea mea este daca pot copia o valoare aparuta la un moment dat.
Am atasat o poza cu valorile care apar si cu incercarea mea de a copia acea valoare.
Ex. din foto : =IF(B18=C2,F6) cand B18 este egal cu C2 apare valoarea F6 in celula C18 dar in secunda urmatoare valoarea in C18 revine la FAlSE.
Intrebarea mea este daca exista vreo formula prin care valoarea aparuta in C18 sa nu se intoarca la FALSE ci sa ramana la ce a afisat F6 cand B18 a fost egal cu C2.

Sper ca m-am facut inteles !
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gecs » Joi Ian 28, 2010 12:14 pm

Nu cred ca se poate altfel decat cu vba. Probabil e nevoie de ceva cod in procedura atasata evenimentului Worksheet_Change sau Worksheet_Calculate care sa intercepteze in momentul schimbarii valorii din C2 valorile pe care vrei sa le retii si apoi sa le scrie pe un rand nou in zona din foaia de calcul unde vrei sa salvezi aceste valori. Problema pe care o vad de rezolvat este de sincronizare a intervalului la care se fac modificarile (1 sec.) cu timpul in care procedura vba isi face treaba. Daca poti sa reglezi intervalul de actualizare astfel incat sa nu apara evenimente in cascada care sa duca la erori, s-ar putea sa mearga, dar daca nu, probabil ca procedura de eroare din cod va trebui sa stie sa "sara" peste evenimentele pe care nu le poate intercepta si vei pierde din inregistrari, adica vor aparea doar inregistrari la 2, sau 3 secunde, sau mai rar - nu stiu.

gxg276
Mesaje: 20
Membru din: Joi Ian 28, 2010 11:20 am

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gxg276 » Joi Ian 28, 2010 12:58 pm

Sincronizarea intervalului poate fi mai mare de o secunda (pe mine ma intereseaza cel mai des din minut in minut). Am incercat sa maresc intervalul la 1 minut (credeti ca este corecta formula ?). In acest moment valoarea din celula D11 ramane afisata timp de 1 minut. Tinand cont de datele din atasament as vrea sa inregistrez in alta celula valoarea aparuta in celula D11.

Nu prea stiu ce este vba dar cred ca as putea ""sapa" sa aflu mai multe. Sa inteleg ca folosind vba as putea comanda excel-ul sa inregistreze valoarea aparute intre minutele "x" si "y". M-ati putea ajuta cu un link ptr. a intelege mai bine ce este vba ?

Multumesc pentru ajutor !
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gecs » Joi Ian 28, 2010 1:17 pm

VBA inseamna Visual Basic for Applications si este un limbaj de programare folosit pentru a scrie proceduri in cadrul programelor care accepta asa ceva.
In Excel, daca apesi Alt+F11 se deschide o noua fereastra care are titlul "Microsoft Visual Basic - ..." unde "..." reprezinta denumirea fisierului deschis in momentul respectiv. Acesta este editorul pentru scrierea procedurilor utilizand VBA.

Daca nu stii ce inseamna VBA, iti va lua ceva timp si efort pana sa incepi sa-l folosesti, dar daca atasezi fisierul aici, pot sa incerc sa scriu eu procedura despre care vorbeam mai sus si sa incercam apoi daca functioneaza.

Pe urma mai vorbim despre VBA. Poti insa sa incepi cu tutorialul scris de Lucian.

gxg276
Mesaje: 20
Membru din: Joi Ian 28, 2010 11:20 am

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gxg276 » Joi Ian 28, 2010 1:25 pm

Randurile de la 1 la 6 se actualizeaza la intervalul cerut de mine in softul din care se exporta.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gecs » Joi Ian 28, 2010 2:10 pm

In arhiva atasata e un fisier .xlsm In acest fisier, in procedura asociata evenimentului Worksheet_Change al foii "Foaie1" sunt cateva linii de cod VBA care testeaza modificarea valorii din C2 (ora la care s-a facut update-ul) si la orice modificare iti adauga in foaie pe coloanele C, F si H, incepand cu randul 10 ora din C2 si valorile din F6 si H6 din momentul respectiv.

La deschiderea fisierului va trebui sa activezi macro-urile (apare un dialog sau un buton sub menu) - nu stiu cum e mesajul in limba romana, dar trebuie sa permti activarea macro-urilor pentru ca procedura de mai sus sa functioneze.

In forma in care e acum, procedura adauga valori la cele existente, chiar daca inchizi fisierul si-l redeschizi mai tarziu. Va ramane de rezolvat ce faci cu valorile inscrise deja, daca vrei sa le stergi si sa reincepi inregistrarea lor incepand cu randul 10. Asa cum e acum, ca sa faci treaba asta deschizi fisierul si NU ACTIVEZI MACRO-URILE, stergi toate valorile (sau randurile) incepand cu randul 10, salvezi fisierul, il inchizi si-l redeschizi activand macro-urile. Se poate imagina o varianta in care la deschiderea fisierului, daca exista valori inscrise de la randul 10 incolo sa te intrebe daca vrei sa le stergi sau nu si stergerea sa se faca automat.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

gxg276
Mesaje: 20
Membru din: Joi Ian 28, 2010 11:20 am

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gxg276 » Joi Ian 28, 2010 2:30 pm

In momentul in care am modificat eu celula C2, celulele C10, F10 si H10 au "sesizat" si s-au modificat (cred ca este o eroare la F10) insa cand am pus softul sa actualizeze datele din foaie nu s-a mai intamplat nimic, ca si cum celula C2 ar fi ramas nemodificata.

O sa mai revin cu niste precizari !
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gecs » Joi Ian 28, 2010 2:43 pm

Incearca varianta din fisierul atasat - s-ar putea ca evenimentul care trebuie sa fie folosit sa fie Calculate si nu Change.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

gxg276
Mesaje: 20
Membru din: Joi Ian 28, 2010 11:20 am

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gxg276 » Joi Ian 28, 2010 2:46 pm

In privinta felului in care se inscriu valorile din C10, F10 si H10 as fi vrut sa le pot edita in asa fel incat sa-mi inregistreze valorile din F5, F6, H5 sau H6 in functie de cerintele mele (deoarece softul modifica in fiecare secunda timpul din celula C2 - daca ar functiona corect - coloane C, F si H s-ar modifica la fiecare secunda).
Concret rezultatul la care vreau sa ajung : coloanele C, F, si H sa extraga valorile din C2, F5 si H5 (sau F6 si H6) doar la anumite ore specificate de mine si nu de fiecare data cand se modifica C2. Altfel spus vreau sa stiu valorile care au prezente in F5 si H5 in momentul in care C2 a aratat (sa zicem) 14:55:01.
Daca a-ti putea crea un astfel de template cred ca - prin comparatie - l-as putea modifica in functie de cerintele mele.

Va multumesc inca o data ptr. ajutor !

gxg276
Mesaje: 20
Membru din: Joi Ian 28, 2010 11:20 am

Re: Inregistrarea unei valori in functie de ora (formula)

Mesaj de gxg276 » Joi Ian 28, 2010 3:08 pm

In fisierul R2, nu s-au modicat coloanele nici cand am modificat eu celula C2 nici cand a inceput softul sa actualizeze foaia. Singura modificare a aparut (atasament) in momentul in care am introdus in celula C2 formula =A10 apoi = A11 (dupa ce am completat A11 cu 15:30:30).
Ca incepator, din ce observ, cred ca excel-ul nu sesizeaza modificarea celului C2 in momentul cand foaia este "conectata" la soft !
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”