Bir *.xls dosyasını başka bir *.xls dosyasına export etme

Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Herkese tekrardan merhabalar,

Şöyle bir sorum olacak. Elimizde iki tane Excel Worksheet var.

C:\ kopyalanacak.xls
C:\ yapistirilacak.xls

Kopyalanacak.xls dosyasında çeşitli datalar var. (mesela 1.sütünda)

Bu veriler her zaman değişiyor. Bu veriler alınıp yapistirilacak.xls dosyasına yapıştırılıyor.

Bu tabi manuel olarak yapılmakta. Ben bunu otomatik olarak bir CommandButton koyarak yapmak istiyorum.

Forumda biraz araştırdım.

Şuradaki,

http://www.excel.web.tr/f48/userformu-ba-351-ka-bir-excel-dosyas-305-t41238.html

soruda sorduğuma benzer bir şeyler yapılmış. Ama ben,

Private Sub CommandButton1_Click()

Workbooks("kopyalanacak.xls").VBProject.VBComponents.Import "c:\yapistirilacak.xls"

End Sub

yada

ActiveWorkbook.VBProject.VBComponents.Item("Worksheets1").Export "yapistirilacak.xls"

Şeklinde kod yazdım fakat Run Time error veriyor. Visual Basic Projesi'ne programlı olarak erişim güvenli değil şeklinde bir hata.

Tabi sözle anlatımda pek başarılı değilim bu yüzden iki tanede dosya ekleyeceğim izninizle,

Yardımcı olabilirseniz çok sevinirim, teşekkür ederim.

İyi günler dilerim.

EDİT: İş yerinde olduğum için bilgisayarda pop-up açamıyorum, o yüzden dosyaları ekleyemedim, akşama ekleyeceğim. Teşekkür ederim.
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,397
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

Araçlar > Makro > Güvenlik' ten "Güvenilen Yayımcılar" tabına girin.

Orada bulunan "Visual Basic Project erişimine güven" onay kutusunu işaretleyip "Tamam" seçin.

Bundan sonraki denemede hata vermemesi gerekir.
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Tesekkur ederim, peki izledigim yol konusunda bir yorumunuz olabilir mi? En azindan arastirmami bu yone yada baska bir yone kanalize edebilmem acisindan.

Tekrardan tesekkurler. Bu arada export etmeyi denedim subscript out of range run-time hatasi verdi.

Saniyorum tum worksheet'i export etmek mumkun degil? Herhalde bir range tanimlayip onu export etmemiz mi gerek acaba?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sayfadaki bilgileri bir başka dosyaya ADO ve diğer kapalı dosyadan veri çekme araçları ile alabilirsiniz. Kasdettiğiniz sanıyorum bu. Konuyla ilgili olarak aşağıdaki başlığı incelemenizi öneririm.

ADO-DAO-Kapalı Dosya Uygulamaları
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Sayin Levent Mentesoglu, cok tesekkur ederim sanirim aradigim sey bu. Verdiginiz sayfayi inceleyip takildigim yerler olursa tekrardan burada sormak isterim.

Tekrardan sagolun, simdilik hoscakalin.
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Her iki dosyanızın birer örneğini ve alınacak verilerle ilgili açıklamalarınızı eklerseniz çözüm bulunacaktır.
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Malesef ki dosya ornegi veremiyorum, cunku calistigim yerden cikarmam mumkun degil.

Alinacak veriler sadece sutunlar boyu rakamlar, yukaridaki iki ornekte bir seyler yazarak aciklama calistim.

Soyle bir durum,

Baska bir birim, bankamizin subelerini puanliyor. Bir xls dosyasina bunlari kayit ediyor. Bu xls dosyasini bizim subemiz alip buna gore prim hesapliyor.

Ekte daha aciklamaya calistim, kusura bakmayin derdimi anlatamama gibi bir problemim var, ayrica ingilizce klavye icin ozur dilerim.

Iyi aksamlar.
 

Ekli dosyalar

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,397
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

Ekli dosyadaki dosyaları aynı dizine çıkarıp test edin.

Kod:
Sub insert_into()
Set c = CreateObject("adodb.connection")

c.Open _
"driver={microsoft excel driver (*.xls)};dbq=" & _
ThisWorkbook.Path & "\data.xls;readonly=true;"

For z = 2 To 10
    c.Execute _
        "insert into [sheet1$] ([Şube adları], [Gelen Puanlar]) " & _
            "values('" & Cells(z, 1) & "', '" & Cells(z, 2) & "');"
Next

c.Close
End Sub
 

Ekli dosyalar

Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Cok tesekkur ederim, ellerinize saglik, tam istedigim sey buydu.

Tekrardan cok tesekkurler, saygilar ve sevgiler.
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Tekrardan merhabalar,

Gonderdiginiz dosyada buton 1 kere basilinca tam olarak istedigim seyi yapiyor. Fakat ikince kez yapilinca for dongusunu bir onceki for'un kaldigi yerden (yani 16.satir oluyor sanirim) devam ettiriyor.

Bunu engellemenin bir yolu var midir acaba?

For dongusunu 2'den degilde z gibi bir degiskenden baslatip, for dongusunden cikinca z'yi ikiye esitlemeyi dusundum, acaba olabilir mi?

Ben denedim fakat yine kaldigi yerden devam ediyor. Bir oneriniz olabilir mi acaba? Kisacasi overwrite edecek bir once yazdigi seylerin ustune.

Ekleme: Ornekte vermek gerekirse mesela tunc_akin_2 dosyasindaki A subesi hucresini ben Z subesi olarak degistirmek istiyorum. Bunu yapinca Z subesi ile baslayan baska bir 15 satir olusturuyor insert ettigim veri.xls dosyasinda. Ben bunu veri dosyasinda ki bilgilerin ustune yazmak istiyorum. Umarim aciklayici olmustur.

Tekrardan tesekkurler.
 
Son düzenleme:
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Aklıma başka bir yöntem daha geldi, veri.xls dosyasını çarpıdan kapatılamayacak duruma getireceğim, bir düğme yardımı ile çıkılabilecek. Ayrıca çıkmadan önce dolu olan hücreleri temizleyecek.

Bakalım öyle olacak mı.

Şu anda denedim,

Sub cikis()

For x = 2 To 15

Rows(x).EntireRow.Delete

Next x

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Şöyle bir kod yazdım ama for döngüsünde bir problem var. Niye anlayamadım ama commandbutton'a birinci basışta 1.satır haric 15'e kadar hepsini silmesi gerekirken, ilk basışta alttan 5 tane filan silip save edip çıkıyor.

2.basışta geri kalan 3 taneyi filan silip save edip çıkıyor.

3.basışta hepsini temizleyip çıkıyor.

Ben böyle bir yöntem buldum problemime ama başka bir öneriniz varsa dinlemeye hazırım:)
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,397
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

İlk tıklamada döngü 15 defa "insert" (kayıt) yaptı diyelim. Bunun döngüdeki "z" değişkeniyle ilişkisi yoktur. Yani ilk kayıtların bittiği (16. satır) ilk boş satırdan eklmeye başlayacaktır.

Eski kayıtların üzerine yazılmasını mı istiyorsunuz?
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Evet Zeki Bey, eski kayitlarimin ustune yazmasini istiyorum, cunku yenisini yazinca gereksiz yere data kalabaligi oluyor.

Yani bir sekilde "guncelleme" yapmak istiyorum diyebilirim.
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Guncelleme konusunda yardim edebilecek birileri yok mu acaba?

Yarin bir cesit rapor vermem gerekecek, yapabilirim yada yapamam gibi o yuzden boyle soruyorum, kusura bakmayin.

Iyi aksamlar.
 
Katılım
9 Ocak 2009
Mesajlar
28
Excel Vers. ve Dili
excel 2003 biraz vb
Arkadaslar yardim alabilecegimi umarak ekte 2 adet dosya gonderiyorum.

Umarim bir ise yararlar, tesekkurler.
 

Ekli dosyalar

Üst