• DİKKAT

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

Kapalı dosyayı açmadan birden fazla dosyadan veri almak hakkında

Katılım
9 Mart 2010
Mesajlar
27
Excel Vers. ve Dili
Windows Xp_TR
office 2003_TR
Selamlar;
Kapılı dosyayı açmadan birden fazla dosyadan veri almak hakkında yardımcı olabilecek ustalara şimdiden teşekkür ederim.
CM1 - 20100101.xls adında kayıtlı bir dosyanın sheet1 'indeki verileri (Başlık ve Tarih değişkendir) ve GünlükRapor 2010 Mart 14.xls adındaki dosyanın ilgili sheet'inden (Tarih değişken olup sheet isimleri CM1, CM2, CM3 gibi devam ediyor) verileri alıp, almış olduğum verileri yine ilgili sheetin hazırlanmış şablonundaki yerlerine aktarmak istiyorum. Bu konu ile ilgili yardım ve örnek kodlarınızı bekliyorum.
 
Örnek dosyaları ekleyebilirseniz ilgilenen arkadşlara olacaktır.:cool:
 
yapmaya çalıştıklarım ve yaptıklarım dosyada

Örnek dosyaları ekleyebilirseniz ilgilenen arkadşlara olacaktır.:cool:

Evren Hocam Selamlar;
Hocam Örnek dosyamda kopyala / yapıştır kullandım, bunu kapalı dosyadan veri almaya dönüştürmek istiyorum yardımcı olursanız sevinirim.
Hocam dosya içinde açıklanmasını istediğiniz yerler olursa ek dosyalarıda özel mesajla göderebilirmiyim ? İlginize teşekkür ederim.
 
Son düzenleme:
1)veriler diğer dosyadan bu dosyayamı alnacak?
2)veri alınacak dosya adı nerdedir?
3)Eğer veriler bu dosyaya alınacaksa kaynak dosyalar nerededir,(Onlarıda yollayınız)
4)Kaynak dosyalarda veriler hangi sayfadan alınıp hedef dosyada hangi sayfaya yazılacaktır?
Gördüğünüz gibi en az 4 bilinmeyenin bilinmesi gerekiyor.
Onun için sorularınızı sorarken yeterli açıklamaları yaparsanız iyi olur.
 
veri alınacak dosyalar ektedir

1 . ) hocam veriler bu dosyaya alınıyor. ismini programı tamamladığımda düzenleyeceğim.
2 . ) hocam Takvim sayfasındaki A1 hücrsindeki değeri 1. dosya için A15 hücresindeki değeri de 2. dosya için kullanmam gerekiyor. bu değerler takvime click lendiğinde değişiyor. 2. dosyanın veri alınan sayfasında değişik noktalardaki veriler alınıyor. örneğin A2:G26 A29:A50 ve bikaç nokta daha var.
3 . ) Hocam veri alınan 1. dosya sheet1 den alıyor, 2. dosya ise kullanıcı adı isteyen bir userform açıldıkdan sonra cd1_veri_topla sayfasından (cd1 değişken) veri alıyor.
Hocam ben en iyisi size diğer dosyalarıda göndereyim, açıklaması daha kolay olacağını düşünüyorum.
 
Son düzenleme:
1 . ) hocam veriler bu dosyaya alınıyor. ismini programı tamamladığımda düzenleyeceğim.
2 . ) hocam Takvim sayfasındaki A1 hücrsindeki değeri 1. dosya için A15 hücresindeki değeri de 2. dosya için kullanmam gerekiyor. bu değerler takvime click lendiğinde değişiyor. 2. dosyanın veri alınan sayfasında değişik noktalardaki veriler alınıyor. örneğin A2:G26 A29:A50 ve bikaç nokta daha var.
3 . ) Hocam veri alınan 1. dosya sheet1 den alıyor, 2. dosya ise kullanıcı adı isteyen bir userform açıldıkdan sonra cd1_veri_topla sayfasından (cd1 değişken) veri alıyor.
Hocam ben en iyisi size diğer dosyalarıda göndereyim, açıklaması daha kolay olacağını düşünüyorum.
Ben yine bir şey anlamadım.
Bu veriler nerye allınacak hangi sayfaya alınacak?' dosyadanda ayrı yerlerdenmi veriler alınacak.Verilerin alınma yeri stndart değilmi?:cool:
 
Sıkıntılı olan Örnek dosya

Ben yine bir şey anlamadım.
Bu veriler nerye allınacak hangi sayfaya alınacak?' dosyadanda ayrı yerlerdenmi veriler alınacak.Verilerin alınma yeri stndart değilmi?:cool:
Selamlar;
Hocam dosyamı biraz daha düzenledim ve ekte gönderiyorum. Sanırım kullandığım anlatım dili yetersiz kalıyor. Umarım dosya içine ve makrolar kısmınıa yazdığım açıklama notları yardımcı olabilmeniz için yeterlidir.
Üzerinde çalıştığım kodlarda sizden alıntıdır. Şimdiden Emeğiniz için teşekkür ediyorum.
 

Ekli dosyalar

1nci dosyadan verileri aldığınızı kabul ediyorum.
2nci dosyadan verileri almanız için modülde kodları inceleyin.Benim yazdığım yerlere dosya yolunu ve dosya adı ve uzantısını ve sayfa adlarını yazınız.:cool:
Kod:
Sub kapali_aktar()
Dim Misrapor, Gunlukrapor, Mydate, Sayfaseç
Dim conn As Object, rs As Object
Set conn = CreateObject("AdoDb.Connection")
Set rs = CreateObject("AdoDb.Recordset")
    Misrapor = Sheets("takvim").Range("a1").Value ' Verilerin alınacağı ilk dosya adı.
    Gunlukrapor = Range("a15").Value 'Verilerin farklı sayfalardan ve farklı noktalardan alınacağı ikinci dosya adı.
    Mydate = Range("D1").Value  'Bu günün raporu yok, bir gün önceki raporlar alınacak.
    Sayfaseç = Sheets("takvim").Range("b1").Value 'Bu dosyada Alınan verilerin hangi sayfaya yazdırılacağını seçer.
MO = Month(Mydate) ' Dünün tarihine göre ay adı oluşturmak için.

If MO = 0 Then
    MO = 12
    
    Yr = Format(Mydate)
    Dy = Format(Mydate)
Else
    Yr = Format(Mydate)
    Dy = Format(Mydate)
    
End If

Select Case MO
    Case 1
        MMM = "Ocak"
    Case 2
        MMM = "Şubat"
    Case 3
        MMM = "Mart"
    Case 4
        MMM = "Nisan"
    Case 5
        MMM = "Mayıs"
    Case 6
        MMM = "Haziran"
    Case 7
        MMM = "Temmuz"
    Case 8
        MMM = "Ağustos"
    Case 9
        MMM = "Eylül"
    Case 10
        MMM = "Ekim"
    Case 11
        MMM = "Kasım"
    Case 12
        MMM = "Aralık"
End Select

Sheets(Sayfaseç).Select
Yol1 = "E:\Hasan Excel Dosyaları\Fabrika\CMReports" ' Dosya arşivinin yolu "A1" hücresinde belirtilen dosya için.
conn.Open "Provider=microsoft.jet.oledb.4.0;data source=" & Yol1 & _
"\" & Misrapor & ";extended properties=""excel 8.0;hdr=No"""
rs.Open "Select * from [Sheet1$]", conn, 1, 1 ' BURADA TAKILDIM !!! başlıkları eksik getiriyor. 1. satırdan başlayıp veri almasını istiyorom ama 3. satırdan başlıyor ve ilk sütundakini alıyor diğerlerinin başlığını almıyor.
sat = Cells(65536, "A").End(xlUp).Row + 1
rs.movefirst
Range("A" & sat).CopyFromRecordset rs
rs.Close
conn.Close

'======================================================================================
'      ikinci dosyanın kodları burada.Yol ve dosya adını kendinize göre yazınız.
'======================================================================================
conn.Open "Provider=microsoft.jet.oledb.4.0;data source=" & Buraya_2nci_dosyanın_Yolunu_Yazınız & _
"\" & Buraya_2nci_dosyanın_adını_ve_Uzantısını_yazınız & ";extended properties=""excel 8.0;hdr=No"""
rs.Open "Select * from [BURAYA_SAYFA_ADINI_YAZINIZ$]", conn, 1, 1 ' BURADA TAKILDIM !!! başlıkları eksik getiriyor. 1. satırdan başlayıp veri almasını istiyorom ama 3. satırdan başlıyor ve ilk sütundakini alıyor diğerlerinin başlığını almıyor.
sat = BUraya_kaçıncı_satırdan_itibaren_veriler_yazılacak_satır_numarasını_yazın
'aşağıdaki satırın en başına hangi sayfaya veriler alınacaksa onu yazın.
'Örnek: sheets("Sheet2").Range("A" & sat).CopyFromRecordset rs
rs.movefirst
Range("A" & sat).CopyFromRecordset rs
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
MsgBox "Kapalı dosyalardan veriler aktarıldı." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"

End Sub
 

Ekli dosyalar

1nci dosyadan verileri aldığınızı kabul ediyorum.
2nci dosyadan verileri almanız için modülde kodları inceleyin.Benim yazdığım yerlere dosya yolunu ve dosya adı ve uzantısını ve sayfa adlarını yazınız.:cool:
Kod:
Sub kapali_aktar()
Dim Misrapor, Gunlukrapor, Mydate, Sayfaseç
Dim conn As Object, rs As Object
Set conn = CreateObject("AdoDb.Connection")
Set rs = CreateObject("AdoDb.Recordset")
    Misrapor = Sheets("takvim").Range("a1").Value ' Verilerin alınacağı ilk dosya adı.
    Gunlukrapor = Range("a15").Value 'Verilerin farklı sayfalardan ve farklı noktalardan alınacağı ikinci dosya adı.
    Mydate = Range("D1").Value  'Bu günün raporu yok, bir gün önceki raporlar alınacak.
    Sayfaseç = Sheets("takvim").Range("b1").Value 'Bu dosyada Alınan verilerin hangi sayfaya yazdırılacağını seçer.
MO = Month(Mydate) ' Dünün tarihine göre ay adı oluşturmak için.
 
If MO = 0 Then
    MO = 12
 
    Yr = Format(Mydate)
    Dy = Format(Mydate)
Else
    Yr = Format(Mydate)
    Dy = Format(Mydate)
 
End If
 
Select Case MO
    Case 1
        MMM = "Ocak"
    Case 2
        MMM = "Şubat"
    Case 3
        MMM = "Mart"
    Case 4
        MMM = "Nisan"
    Case 5
        MMM = "Mayıs"
    Case 6
        MMM = "Haziran"
    Case 7
        MMM = "Temmuz"
    Case 8
        MMM = "Ağustos"
    Case 9
        MMM = "Eylül"
    Case 10
        MMM = "Ekim"
    Case 11
        MMM = "Kasım"
    Case 12
        MMM = "Aralık"
End Select
 
Sheets(Sayfaseç).Select
Yol1 = "E:\Hasan Excel Dosyaları\Fabrika\CMReports" ' Dosya arşivinin yolu "A1" hücresinde belirtilen dosya için.
conn.Open "Provider=microsoft.jet.oledb.4.0;data source=" & Yol1 & _
"\" & Misrapor & ";extended properties=""excel 8.0;hdr=No"""
rs.Open "Select * from [Sheet1$]", conn, 1, 1 ' BURADA TAKILDIM !!! başlıkları eksik getiriyor. 1. satırdan başlayıp veri almasını istiyorom ama 3. satırdan başlıyor ve ilk sütundakini alıyor diğerlerinin başlığını almıyor.
sat = Cells(65536, "A").End(xlUp).Row + 1
rs.movefirst
Range("A" & sat).CopyFromRecordset rs
rs.Close
conn.Close
 
'======================================================================================
'      ikinci dosyanın kodları burada.Yol ve dosya adını kendinize göre yazınız.
'======================================================================================
conn.Open "Provider=microsoft.jet.oledb.4.0;data source=" & Buraya_2nci_dosyanın_Yolunu_Yazınız & _
"\" & Buraya_2nci_dosyanın_adını_ve_Uzantısını_yazınız & ";extended properties=""excel 8.0;hdr=No"""
rs.Open "Select * from [BURAYA_SAYFA_ADINI_YAZINIZ$]", conn, 1, 1 ' BURADA TAKILDIM !!! başlıkları eksik getiriyor. 1. satırdan başlayıp veri almasını istiyorom ama 3. satırdan başlıyor ve ilk sütundakini alıyor diğerlerinin başlığını almıyor.
sat = BUraya_kaçıncı_satırdan_itibaren_veriler_yazılacak_satır_numarasını_yazın
'aşağıdaki satırın en başına hangi sayfaya veriler alınacaksa onu yazın.
'Örnek: sheets("Sheet2").Range("A" & sat).CopyFromRecordset rs
rs.movefirst
Range("A" & sat).CopyFromRecordset rs
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
MsgBox "Kapalı dosyalardan veriler aktarıldı." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
 
End Sub
Evren Bey Uzmanlıgını Yine HerZamanki Gibi Konuşturmuş...
Saygılar... Security...:cool:
 
Evren Hocam;
Başlık satırlarındaki verileri eksik alması konusunada umarım ekli dosyada bir açıklama getirmişinizdir. Emeğinize teşekkür ederim. Benim için harcadığınız zaman için hakkınızı helal edin hocam.
 
Evren Hocam;
Başlık satırlarındaki verileri eksik alması konusunada umarım ekli dosyada bir açıklama getirmişinizdir. Emeğinize teşekkür ederim. Benim için harcadığınız zaman için hakkınızı helal edin hocam.
Şimdi başlık satırlarını alıyor.
connectionda hdr=no kodu
 
Hocam bu kodu (extended properties=""excel 8.0;hdr=No""") burayamı yazacağım? Kod ilave edilmiş dosyayı tekrar yükleyebilirmsiniz?
 
Hocam bu kodu (extended properties=""excel 8.0;hdr=No""") burayamı yazacağım? Kod ilave edilmiş dosyayı tekrar yükleyebilirmsiniz?
Orada olması gerekiyor.Ama zaten ben onuyolladığım dosyada yapmıştım.
9ncu mesajdan son dosyayı indirebilirsiniz.:cool:
 
Hocam dosyayı tekrar yüklüyorum, sıkıntı yaşadığım başlık konusunu Sayfa "CD2" de kırmızı olarak renklendirdim. Bunları alamıyorum. Sheet1'de veri aldığım sayfanın örneğini görebilirsiniz. Hocam ben çözemedim A3'deki saat başlığını alıyor diğerlerini alamıyor.
 

Ekli dosyalar

Veri aldığınız dosyada A1 hücresindeki birleştirilmiş hücreleri çözün ve 2nci satırdaki dikey olan hücrelerin fontunu normal şekle getirip deneyiniz.:cool:
 
Hocam yazdıklarınızı yaptım hala aynı sonucu veriyor. Sanırım Veri aldığım dosyadan kaynaklanan bir sıkıntı var. Önerinize teşekkür ederim ben biraz daha uğraşayım bunu çözemessem uyku tutmaz.
 
Geri
Üst