
Bir dosyadaki Excel sheet i baska bir excel dosyasına import
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Bir dosyadaki Excel sheet i baska bir excel dosyasına import
Range olarak alarak copy paste yapabiliyorum bu kez. sayfa ayarı ve şekiller bozuluyor. amacım var olan bir sheeti aynı yada farklı bir excel belgesi içine kopyalamak . şayet sheet kopyalarsam sayfa ayarı ve buna benzer format özellikleri bozulmayacaktır. bu konuda bilgisi olan ? 

Bir makro kaydı yaptım aşağıdaki kod oluştu...
- Bu komut dizisi 3 sayfalık bir ( sayfa1,sayfa2,sayfa3 ) XLS dosyamdan 3 ncü sheet'den sonraya Sayfa1 sheet'inin yeni kopyasını çıkartmayı sağladı.
- Bunu Range belirlemeksizin variant değişkeninde uygularsan iş görecektir.
Kod: Tümünü seç
Sheets("Sayfa1").Select
Sheets("Sayfa1").Copy After:=Sheets(3)
- Bunu Range belirlemeksizin variant değişkeninde uygularsan iş görecektir.
Delphiye implementasyonu
tesekkur ederim ama
aşağıdaki kod parçacığı range copy yapmamı sagladı gonderdiğiniz kısımda vba macrosu benim asıl sorunum delphiye nasıl implemente edebilirim.
excel.Sheets['BENIMFORM'].Select;
DestRange := Excel.Range['A1','Z100'];
excel.Range['A1','Z100'].Copy(EmptyParam);
excel.Sheets['Sayfa2'].Select;
excel.Range['A1','Z100'].Select;
excel.activesheet.paste;
aşağıdaki kod parçacığı range copy yapmamı sagladı gonderdiğiniz kısımda vba macrosu benim asıl sorunum delphiye nasıl implemente edebilirim.
excel.Sheets['BENIMFORM'].Select;
DestRange := Excel.Range['A1','Z100'];
excel.Range['A1','Z100'].Copy(EmptyParam);
excel.Sheets['Sayfa2'].Select;
excel.Range['A1','Z100'].Select;
excel.activesheet.paste;
Hiç dikkat etmediniz mi ? Delphi'de yapılan OleAutomation kodlarının tümü aslında birer VBA Macro komutudur...
// EDIT // Açtığın başlıkta bir başka Excel dosyasına demişsin onu görmemişim.
Her iki excel dosyası bağımsız WorkBook olarak açılırlar bunu bilirsin. Onların isimlerini veya indexlerini belirterek adresleme yapılır. Aynı kopyalama komutu aşağıdaki gibi işler...
Kod: Tümünü seç
Excel.Sheets['BENIMFORM'].Copy(After:=Excel.Sheets['BENIMFORM']);
// EDIT // Açtığın başlıkta bir başka Excel dosyasına demişsin onu görmemişim.
Her iki excel dosyası bağımsız WorkBook olarak açılırlar bunu bilirsin. Onların isimlerini veya indexlerini belirterek adresleme yapılır. Aynı kopyalama komutu aşağıdaki gibi işler...
Kod: Tümünü seç
Var
Excel : OleVariant;
begin
Excel := GetActiveOleObject('Excel.Application');
Excel.WorkBooks['Kitap1'].Sheets['Sayfa1'].Copy(After:=Excel.WorkBooks['Kitap2'].Sheets['Sayfa1']);
Excel := UnAssigned;
end;
Teşekkür
Hocam vba olduğu için delphi syntaxına da uydurmak gerekiyor. bu nedenle (delphi implementasyonu ) nasıldır diye sordum ..
alttaki linktede
"http://msdn2.microsoft.com/en-us/librar ... s.80).aspx" aynı kullanıldığı yeni dikkatimi çekti.
Teşekkür ederim.
alttaki linktede
"http://msdn2.microsoft.com/en-us/librar ... s.80).aspx" aynı kullanıldığı yeni dikkatimi çekti.
Teşekkür ederim.
Re:
mrmarman yazdı: 06 Ağu 2007 06:24 Hiç dikkat etmediniz mi ? Delphi'de yapılan OleAutomation kodlarının tümü aslında birer VBA Macro komutudur...
Kod: Tümünü seç
Excel.Sheets['BENIMFORM'].Copy(After:=Excel.Sheets['BENIMFORM']);
// EDIT // Açtığın başlıkta bir başka Excel dosyasına demişsin onu görmemişim.
Her iki excel dosyası bağımsız WorkBook olarak açılırlar bunu bilirsin. Onların isimlerini veya indexlerini belirterek adresleme yapılır. Aynı kopyalama komutu aşağıdaki gibi işler...
Kod: Tümünü seç
Var Excel : OleVariant; begin Excel := GetActiveOleObject('Excel.Application'); Excel.WorkBooks['Kitap1'].Sheets['Sayfa1'].Copy(After:=Excel.WorkBooks['Kitap2'].Sheets['Sayfa1']); Excel := UnAssigned; end;
Kodu çalıştıramadım konu hakkında fikri olan her yardıma ihtiyacım var nasıl yapılıyor bu belgeler arası kopyalama yada taşıma işleri ?? yada import ederken direk var olan bir excel belgesinin içine yeni bir sayfa olarak imort etsem oda olur.
Re: Bir dosyadaki Excel sheet i baska bir excel dosyasına import
Delphi de bir execel belgesinde ki sayfayı başka bir excel belgesine taşımanın kodunu çalıştırdım belki birinin işine yarar
procedure TForm1.RzBitBtn15Click(Sender: TObject);
var
excel:variant;
begin
Excel := GetActiveOleObject('Excel.Application');
excel.Workbooks.open('C:\d\A.xlsx');
excel.Workbooks.open('C:\d\f.xlsx');
excel.Visible:=True;
Excel.WorkBooks[1].Sheets[1].Copy(After:=Excel.WorkBooks[2].Sheets[excel.Sheets.Count]);
end;