• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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:
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.
 
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?
 
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ı
 
Sayin Levent Mentesoglu, cok tesekkur ederim sanirim aradigim sey bu. Verdiginiz sayfayi inceleyip takildigim yerler olursa tekrardan burada sormak isterim.

Tekrardan sagolun, simdilik hoscakalin.
 
Her iki dosyanızın birer örneğini ve alınacak verilerle ilgili açıklamalarınızı eklerseniz çözüm bulunacaktır.
 
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

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

Cok tesekkur ederim, ellerinize saglik, tam istedigim sey buydu.

Tekrardan cok tesekkurler, saygilar ve sevgiler.
 
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:
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:
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?
 
Evet Zeki Bey, eski kayitlarimin ustune yazmasini istiyorum, cunku yenisini yazinca gereksiz yere data kalabaligi oluyor.

Yani bir sekilde "guncelleme" yapmak istiyorum diyebilirim.
 
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.
 
Arkadaslar yardim alabilecegimi umarak ekte 2 adet dosya gonderiyorum.

Umarim bir ise yararlar, tesekkurler.
 

Ekli dosyalar

Geri
Üst