![]() |
Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Cod VBA Excel - copiere informatii in workbook
Last Updated: Oct 05 2010 20:15, Started by
sandra_m
, Oct 01 2010 14:37
·
0

#19
Posted 05 October 2010 - 14:48

Formula mi se pare cam ciudata, dar asta o putem discuta separat. Ai vrea sa-ti centralizeze si inregistrarile unde apare sirul "scadenta depasita"? Daca asta e ideea, au as face o formula care sa afiseze un sir de caractere care contine cuvantul "scadenta" pentru orice inregistrare o vrei centralizata. Macro-ul din fisierul atasat asta face. In plus, formula despre care vorbeai mai sus am adaptat-o sub forma: =IF(LEN($E2)=0,"",IF(LEN($F2)=0,IF(TODAY()=$E2,"factura scadenta",IF(TODAY()<$E2,"","scadenta depasita")),IF(ISNUMBER($F2),IF($F2>$E2,"scadenta depasita",""),"")))si am copiat-o in toate tabelele. ![]() Din nou ai gasit varianta perfecta de rezolvare. Daca ma mai descurci cu o chestie ma declar super multumita: cum sa fac sa ruleze macro-ul si daca redenumesc foile de lucru? Cu ce ar trebui sa schimb cli_txt & i ca sa nu-mi dea eroare? As vrea in loc de client 1, client 2, etc. sa pun numele lor. Am incercat cu un cod vba de inlocuire in foaia "scadente" client 1 cu nume 1, client 2 cu nume 2 dar de la client 11 imi trece nume11...
Din nou ai gasit varianta perfecta de rezolvare. Daca ma mai descurci cu o chestie ma declar super multumita: cum sa fac sa ruleze macro-ul si daca redenumesc foile de lucru? Cu ce ar trebui sa schimb cli_txt & i ca sa nu-mi dea eroare? As vrea in loc de client 1, client 2, etc. sa pun numele lor. Am incercat cu un cod vba de inlocuire in foaia "scadente" client 1 cu nume 1, client 2 cu nume 2 dar de la client 11 imi trece nume11... |
#20
Posted 05 October 2010 - 15:30

Din nou ai gasit varianta perfecta de rezolvare. Daca ma mai descurci cu o chestie ma declar super multumita: cum sa fac sa ruleze macro-ul si daca redenumesc foile de lucru? Cu ce ar trebui sa schimb cli_txt & i ca sa nu-mi dea eroare? As vrea in loc de client 1, client 2, etc. sa pun numele lor. Am incercat cu un cod vba de inlocuire in foaia "scadente" client 1 cu nume 1, client 2 cu nume 2 dar de la client 11 imi trece nume11... Am mai observat o chestie: formula pentru scadenta depasita nu tine cont de existenta unei informatii in coloana incasare. Daca apare o data la incasare nu vreau sa-mi mai afiseze "scadenta depasita", pentru ca inseamna ca factura este incasata. - in tabelul centralizator redenumim coloana Client in Foaie Client si dupa ea mai introducem o coloana pe care o denumim Client si acolo va fi afisat numele; - mai adaugam o foaie de calcul numita Clienti in care facem un tabel in care pe prima coloana va fi numele foii si pe a doua coloana numele clientului; - tabelul din noua foaie va fi intr-un range dinamic cu pana la 100 de clienti (daca vrei mai multi iti spun unde si ce sa modifici); - in coloana noua inserata in tabelul centralizator punem o formula care returneaza numele clientului cu un INDEX+MATCH din foaia Clienti Formula tine cont de informatie, dar daca data inscrisa in coloana Incasare e mai mare decat data din coloana Scadenta afiseaza "scadenta depasita", chiar daca e o factura cu scadenta mai veche decat TODAY() - mi se pare normal si am crezut ca asta e informatia pe care o vrei. Daca insa in coloana Incasare e inscris un sir de caractere (ai in unele celule scris "da"), formula returneaza sirul vid (""). In fisierul atasat gasesti versiunea despre care vorbeam mai sus. In foaia Clienti completezi pe coloana A numele foii de calcul a clientului, iar pe coloana B numele reale ale clientilor. Daca adaugi inregistrari in acel tabel va trebui sa adaugi si foaia de calcul corespunzatoare. De asemenea, daca modifici numele unei foi de calcul trebuie sa faci modificarea si in foaia Clienti si invers. Eu am modificat numele foii client 1 in xxx, am modificat si in tabelul din foaia Clienti si acum in centralizator apare xxx in loc de Client 1, iar la numele clientului apare Vasile, fiindca asa am scris in foaia Clienti ![]() Acum macro-ul numara si citeste cate foi de clienti sunt in fisier din tabelul din foaia Clienti, asa ca ai grija atunci cand modifici sa existe corespondenta perfecta intre numele si numerul foilor pentru clienti si ce scrie in acel tabel: daca sunt mai putine foi inscrise in tabelul Clienti, acele foi nu vor fi luate in seama de macro, daca sunt mai multe foi inscrise in tabel, sau numele foilor nu corespund, macro-ul va da eroare. ![]() Edited by gecs, 05 October 2010 - 15:31. |
#21
Posted 05 October 2010 - 16:05

Iti propun urmatoarea rezolvare: - in tabelul centralizator redenumim coloana Client in Foaie Client si dupa ea mai introducem o coloana pe care o denumim Client si acolo va fi afisat numele; - mai adaugam o foaie de calcul numita Clienti in care facem un tabel in care pe prima coloana va fi numele foii si pe a doua coloana numele clientului; - tabelul din noua foaie va fi intr-un range dinamic cu pana la 100 de clienti (daca vrei mai multi iti spun unde si ce sa modifici); - in coloana noua inserata in tabelul centralizator punem o formula care returneaza numele clientului cu un INDEX+MATCH din foaia Clienti Formula tine cont de informatie, dar daca data inscrisa in coloana Incasare e mai mare decat data din coloana Scadenta afiseaza "scadenta depasita", chiar daca e o factura cu scadenta mai veche decat TODAY() - mi se pare normal si am crezut ca asta e informatia pe care o vrei. Daca insa in coloana Incasare e inscris un sir de caractere (ai in unele celule scris "da"), formula returneaza sirul vid (""). In fisierul atasat gasesti versiunea despre care vorbeam mai sus. In foaia Clienti completezi pe coloana A numele foii de calcul a clientului, iar pe coloana B numele reale ale clientilor. Daca adaugi inregistrari in acel tabel va trebui sa adaugi si foaia de calcul corespunzatoare. De asemenea, daca modifici numele unei foi de calcul trebuie sa faci modificarea si in foaia Clienti si invers. Eu am modificat numele foii client 1 in xxx, am modificat si in tabelul din foaia Clienti si acum in centralizator apare xxx in loc de Client 1, iar la numele clientului apare Vasile, fiindca asa am scris in foaia Clienti ![]() Acum macro-ul numara si citeste cate foi de clienti sunt in fisier din tabelul din foaia Clienti, asa ca ai grija atunci cand modifici sa existe corespondenta perfecta intre numele si numerul foilor pentru clienti si ce scrie in acel tabel: daca sunt mai putine foi inscrise in tabelul Clienti, acele foi nu vor fi luate in seama de macro, daca sunt mai multe foi inscrise in tabel, sau numele foilor nu corespund, macro-ul va da eroare. ![]() Super rezolvarea cu denumirea clientilor. "Scadenta depasita" trebuie sa apara la facturile care au fost scadente si in dreptul coloanei "incasare" nu apare nici o informatie (in foaia mea sunt celulele albastre). Daca factura este incasata trec data la care se incaseaza sau "da" (pana aflu exact data la care s-a incasat, conform extraselor de cont). |
#22
Posted 05 October 2010 - 16:38

Pentru problema cu returnarea sirului "scadenta depasita" modifici formula in:
=IF(LEN($E2)=0,"",IF(LEN($F2)>0,"",IF(TODAY()=$E2,"factura scadenta",IF(TODAY()<$E2,"","scadenta depasita")))) |
#23
Posted 05 October 2010 - 17:25

#25
Posted 05 October 2010 - 18:51

Cu placere. Despre Excel si celelalte programe Office poti sa gasesti informatii foarte utile si aici. ![]() Selection.FormulaLocal = "=IF(LEN($A" & j & ")=0,"""",INDEX(clienti,MATCH($A" & j & ",INDEX(clienti,,1),0),2))" din codul vba. |
#26
Posted 05 October 2010 - 19:03

![]() Selection.FormulaLocal = "=IF(LEN($A" & j & ")=0,"""",INDEX(clienti,MATCH($A" & j & ",INDEX(clienti,,1),0),2))" din codul vba. ![]() |
#27
Posted 05 October 2010 - 20:15

Chiar am vrut sa modific linia aia care introduce o formula fiindca se poate scrie direct valoarea din tabelul Clienti. S-ar putea insa ca eroarea sa nu fie legata de linia cu formula. ![]() Acum totul este in ordine, multumesc. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users