copierea range-urilor definite

myhay99
Mesaje: 110
Membru din: Mar Aug 04, 2009 8:20 am
Localitate: Bucuresti
Contact:

copierea range-urilor definite

Mesaj de myhay99 » Mie Mar 17, 2010 10:01 am

Un grup de celule dintr-un sheet, sa spunem a1:c10 este denumit "XXGRUP". Intregul sheet este copiat in alt fisier printr-un macro. Exista vre-un macro care sa copieze sheetul cu tot cu numele & detaliile range-ului? Multumesc anticipat

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1921
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: copierea range-urilor definite

Mesaj de Dr.Excel » Mie Mar 17, 2010 10:06 am

ar insemna ca in aceeasi foaie sa existe mai multe named range-uri cu acelasi nume
Dr.Excel
MCT, MCITP
MOS Master Instructor
IT Learning

Dr.Windows
Site Admin
Site Admin
Mesaje: 4519
Membru din: Vin Iul 31, 2009 7:32 am

Re: copierea range-urilor definite

Mesaj de Dr.Windows » Mie Mar 17, 2010 10:14 am

Daca este in ALT fisier se poate.
Urmatorul macro a fost creat prin inregistrarea coperatiunii de copiere a unui intreg sheet cu optiunea "move or copy" disponibila la un click dreapta pe foaia "de copiat":

Cod: Selectaţi tot

Sub CopiereSheet()
    Sheets("Sheet1").Select
    Sheets("Sheet1").Copy Before:=Workbooks("Book2.xls").Sheets(1)
End Sub
Va face copierea integrala a Sheet1 din Book1 inclusiv a numelor de range-uri in fisierul Book2.

Dr.Windows
Site Admin
Site Admin
Mesaje: 4519
Membru din: Vin Iul 31, 2009 7:32 am

Re: copierea range-urilor definite

Mesaj de Dr.Windows » Mie Mar 17, 2010 10:35 am

In plus, daca vrei sa si redenumesti fisierul copiat acel macro ar deveni:

Cod: Selectaţi tot

Sub CopiereSheetcuRename()
    Sheets("Sheet1").Select
    Sheets("Sheet1").Copy After:=Workbooks("Book2.xlsx").Sheets(1)
    Sheets("Sheet1 (2)").Select
    Sheets("Sheet1 (2)").Name = "SheetNou"
End Sub
Dupa cum se observa merge si pe Excel 2007 (initial am testat cu 2003) si ar mai trebui sa tii cont de urmatoarea atentioanre: codul de mai sus functioneaza daca codul VBA se afla in Book1 si ai deschis si Book2 (iar Book1 este cel activ in momentul executiei) atfel trebuie modificat putin codul ca sa-l poti apela si din alta parte...

Avatar utilizator
Dr.Excel
Site Admin
Site Admin
Mesaje: 1921
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest
Contact:

Re: copierea range-urilor definite

Mesaj de Dr.Excel » Mie Mar 17, 2010 10:41 am

Intregul sheet este copiat in alt fisier printr-un macro
mea culpa, nu vazusem ca este vorba de alt fisier :roll:

totusi, codurile de mai sus trebuie sa se asigure ca acea carte "Book2.xlsx" nu reprezinta cartea curenta (ca sa nu apara conflict de nume la Named Range)
Dr.Excel
MCT, MCITP
MOS Master Instructor
IT Learning

Dr.Windows
Site Admin
Site Admin
Mesaje: 4519
Membru din: Vin Iul 31, 2009 7:32 am

Re: copierea range-urilor definite

Mesaj de Dr.Windows » Mie Mar 17, 2010 10:44 am

Dr.Excel scrie: totusi, codurile de mai sus trebuie sa se asigure ca acea carte "Book2.xlsx" nu reprezinta cartea curenta (ca sa nu apara conflict de nume la Named Range)
Corect!... desi din testele facute se pare ca daca exista 2 nume identice - va ramane doar cel "proaspat copiat" iar vechiul range se pierde... asa ca ATENTIE !!!

myhay99
Mesaje: 110
Membru din: Mar Aug 04, 2009 8:20 am
Localitate: Bucuresti
Contact:

Re: copierea range-urilor definite

Mesaj de myhay99 » Vin Mar 19, 2010 3:55 pm

va multumesc pt feedback.
...tocmai asta e problema, acel "book2" de care spuneati voi, deja exista si vreau sa existe:) am facut mai multe index-uri si in functie de ei am facut niste macro-uri care sa recreeze range-urile de fiecare data la deschiderea fisierului.

Dr.Windows
Site Admin
Site Admin
Mesaje: 4519
Membru din: Vin Iul 31, 2009 7:32 am

Re: copierea range-urilor definite

Mesaj de Dr.Windows » Vin Mar 19, 2010 4:09 pm

myhay99 scrie:va multumesc pt feedback.
...tocmai asta e problema, acel "book2" de care spuneati voi, deja exista si vreau sa existe:) am facut mai multe index-uri si in functie de ei am facut niste macro-uri care sa recreeze range-urile de fiecare data la deschiderea fisierului.
Pai tocmai pentru ca exista nu ar trebui sa fie o problema... ori nu am inteles noi problema?... :roll:

Scrie răspuns

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