macro copiere range excel 1 in range excel 2

Bogdan
Mesaje: 27
Membru din: Mar Oct 20, 2009 11:10 am

macro copiere range excel 1 in range excel 2

Mesaj de Bogdan » Lun Feb 08, 2010 12:43 pm

Salutare ,
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 ?
multumesc

Dr.Windows
Moderator
Moderator
Mesaje: 4570
Membru din: Vin Iul 31, 2009 7:32 am

Re: macro copiere range excel 1 in range excel 2

Mesaj 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"?...

Bogdan
Mesaje: 27
Membru din: Mar Oct 20, 2009 11:10 am

Re: macro copiere range excel 1 in range excel 2

Mesaj 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 )


si tot asa ....

sper ca m-am exprimat cat de cat corect si clar ...


multumesc mult pentru ajutor

Dr.Windows
Moderator
Moderator
Mesaje: 4570
Membru din: Vin Iul 31, 2009 7:32 am

Re: macro copiere range excel 1 in range excel 2

Mesaj 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?...

Bogdan
Mesaje: 27
Membru din: Mar Oct 20, 2009 11:10 am

Re: macro copiere range excel 1 in range excel 2

Mesaj de Bogdan » Lun Feb 08, 2010 5:37 pm

sigur ...

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

multumesc
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: macro copiere range excel 1 in range excel 2

Mesaj 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

Cod: Selectaţi tot

=D4/E4
cu

Cod: Selectaţi tot

=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

Bogdan
Mesaje: 27
Membru din: Mar Oct 20, 2009 11:10 am

Re: macro copiere range excel 1 in range excel 2

Mesaj 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

sper ca am fost clar


p.s. daca se poate face acest lucru cu 1 formula ... sunt deschis si la aceasta alternativa

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: macro copiere range excel 1 in range excel 2

Mesaj 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 :oops:
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

Cod: Selectaţi tot

=[NumeWorkbook.xlsx]NumeFoaie!$A$1
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

Cod: Selectaţi tot

='[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.

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

Re: macro copiere range excel 1 in range excel 2

Mesaj 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 :oops:
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

Cod: Selectaţi tot

=[NumeWorkbook.xlsx]NumeFoaie!$A$1
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

Cod: Selectaţi tot

='[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.
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. ;)

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: macro copiere range excel 1 in range excel 2

Mesaj 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.
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”