Source: http://www.itlearning.ro/forum/viewtopic.php?p=4336&sid=16a1a4ae4c3ecef24246bb90a3234ede
Timestamp: 2018-02-25 21:25:09+00:00

Document:
ITLearning • Vezi subiect - macro copiere range excel 1 in range excel 2
de Bogdan » Lun Feb 08, 2010 12:43 pm
nu imi dau seama cum as putea crea un macro care sa-mi copieze anumite casute dintr-un file excel ( EXCEL 1 ) in anumite casute din alt file Excel ( Excel 2 ) . Ar fi un macro destinat actualizarii datelor din Excel 2 in functie de excel 1 .
ma ajutati putin va rog ?
de Dr.Windows » Lun Feb 08, 2010 1:19 pm
De ce neaparat macro?... valorile pot fi accesate si direct din celalat fisier cu ceva de genul
=[NumeWorkbook.xlsx]NumeFoaie!$A$1
Sau spune-ne mai exact care este regula de copiere (daca exista vreuna), daca sunt intotceauna din aceeasi zona catre aceeasi zona, etc... sau te intereseaza ceva "generic"?...
de Bogdan » Lun Feb 08, 2010 1:53 pm
salut lucian ,
mi-ar fi mult mai usor un macro atasat unui buton " actualizare " . Regulile ar fi urmatoarele :
Excel 1 ramane neschimbat in ceea ce priveste casutele . Zilnic se schimba datele din casute .
Excel 2 are pe verticala ordonate zilele din Excel 1 ... si practic ar trebui sa se actualizeze automat de la 1 zi la alta.
plus ca ar trebuii sa-mi ia urmatorul rand in fiecare zi . Oricum nu stiu daca este posibil sa recunoasca data
01 Ianuarie in excel 1 ( datele ar trebuii copiate pe randul cu 01 Ianuarie in excel 2 )
02 Ianuarie in excel 1 ( datele ar trebuii copiate pe randul cu 02 Ianuarie in excel 2 )
sper ca m-am exprimat cat de cat corect si clar ...
de Dr.Windows » Lun Feb 08, 2010 2:42 pm
Poti sa atasezi si o "mostra" de "Excel 1" si "Excel 2" ca sa fie si mai clar?...
de Bogdan » Lun Feb 08, 2010 5:37 pm
Produttività giornaliera este Excel 1
produttività este Excel 2
am nevoie ca acel macro sa se afle legat de Excel 2 si sa-mi actualizeze file-ul in functie de data ( sa-mi preia datele din Excel 1 ) .
De ex. daca in Produttività giornaliera am data 01 ianuarie as vrea ca activand macro-ul pe produttività sa se copieze datele dar tot in casutele aferente datei de 01 ianuarie
de smcsa » Lun Feb 08, 2010 6:19 pm
Se poate, doar sa ne lamuresti:
1. In Productivitate zilnica care este coloana in care treci data calendaristica ?
2. In Productivitate zilnica ai 4 grupuri de coloane VOL / FTE / MED, iar in Productivitate ai 8 astfel de grupuri (oricum se vor aduce doar VOL si FTE, pentru ca MED se calculeaza in Productivitate.
Vezi ca ai referinte circulare: in celula C1 ai sum(C1:C1000). Nu poti sa aduni si C1, probabil ai vrut C4:C1000. Si asa in toate celulele albastre din Productivitate.
Si ca sa nu mai ai celule cu erori (eu zic ca arata urat), inlocuieste la medie
=D4/E4
=IF(E4<>0;D4/E4;"")
LE: dar sa sti ca varianta cu formula care ti-a dat-o Lucian te scapa de un click pe buton (care poate uiti sa-l dai). Acum depinde si de cantitatea de date
de Bogdan » Mar Feb 09, 2010 4:17 pm
volum datelor este destul de mare .
ar trebuii sa fie cam asa :
productivitatea zilnica ( giornaliera ) estre intradevar file-ul in care se va schimba data calendaristica si datele casutelor
in fisierul de productivitate datele ar trebuii sa se actualizeze in functie de productivite zilnica . Daca in productivitate pun 04 ianuarie ...datele ar trebuii sa mi se actualizeze in productivitatea zilnica pe randul 07 ( 04 ianuarie )
datele din cele 8 casute cu VOL \ FTE din productivitatea zilnica ar trebuii sa intre pe file-ul productivitate astfel :
din casuta D3 ( productivitate zilnica ) in casuta D7 ( productivitate )
din casuta E3 ( productivitate zilnica ) in casuta E7 ( productivitate )
si tot asa pentru 04 Ianuarie
daca aveam 05 ianuarie ar fi venit astfel :
din casuta D3 ( productivitate zilnica ) in casuta D8 ( productivitate )
din casuta E3 ( productivitate zilnica ) in casuta E8 ( productivitate )
am avansat 1 casuta deoarece am trecut de la 04 ianuarie la 05 ianuarie ... si tot asa
p.s. daca se poate face acest lucru cu 1 formula ... sunt deschis si la aceasta alternativa
de smcsa » Mar Feb 09, 2010 5:08 pm
Ai fost clar si de prima data, dar eu nu vazusem toate coloanele in Productivitatea zilnica
Daca in productivitate zilnica ai un singur rand pentru o zi, se rezolva cum a spus Lucian mai sus, cu una formula (dar pusa in fiecare celula din Productivitate) de genul
Adica deschizi ambele fisiere, te pozitionezi in celula D7 din Productivitate, tastezi = si comuti in Productivitate zilnica, click pe celula D3 si enter, rezultand astfel formula
='[Produttività giornaliera.xls]Foglio1'!$D$3
Acum, functie de structura Productivitate zilnica (are sau nu total pe luna, apar toate zilele ca in Productivitate - chiar si cele nelucratoare) poti sa mergi cu formula in jos sau sa o copiezi in dreapta, dar va trebui sa modifici $ in functie de ce doresti.
de gecs » Mar Feb 09, 2010 5:39 pm
smcsa scrie: Ai fost clar si de prima data, dar eu nu vazusem toate coloanele in Productivitatea zilnica
Pai si data unde o verifici in formula?...
Daca se doreste tot istoricul in fisierul "productivitate", nu cred ca scapa fara VBA, pentru ca daca in formula verifici si data iti trebuie un IF, iar la indeplinirea conditiei iti scrie datele, intr-adevar, dar la neindeplinirea conditiei iti returneaza FALSE si adio date.
de smcsa » Mar Feb 09, 2010 6:31 pm
Am pornit de la supozitia ca are aceeasi structura (coloane) si unui rand din zilnica ii corespunde unul si numai unul in centralizator, iar in zilnica are informatii pentru aceleasi date calendaristice ca in centralizator. Adica toate zilele care sunt in centralizator se regasesc in zilnice, din zilnice lipsind doar subtotalurile pe saptamana (vezi atasament)
Deci, n-ar trebui sa mai verifice data in zilnice. Ia range-ul si il pune in centralizator.
Ce nu inteleg e de ce are nevoie de Productivitate ? Doar pentru totalurile pe saptamana si cel general de sus ? Ca atunci n-ar fi nevoie de 2 fisiere. Doar daca zilnice sunt de fapt mai multe fisiere (de pe mai multe calculatoare / sectii), caz in care se schimba problema.
Daca in zilnice nu e cum am crezut eu (ori sunt mai multe randuri pentru o zi, ori zile lipsa), din nou se schimba problema.

References: in casu
in casu
in casu
in casu
in casu
in casu
in casu
in casu
in casu
in casu