• DİKKAT

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

Kapalı bir dosyadan bir sayfayı olduğu gibi getirmek

Katılım
13 Mayıs 2007
Mesajlar
32
Excel Vers. ve Dili
excell 2003
turkce
merhaba arkadaşlar;

adresler.xls dosyası üzerinde çalışıyorum.
o anda kapalı olan genel.xls dosyası içindeki telefonlar isimli sayfayı olduğu gibi üzerinde çalıştığım adresler.xls dosyasına kopyalamak istiyorum.

bu işlemi yapabileceğim makro kodunu söyleyebilir misiniz ?

teşekkür ederim...
 
Aşağıdaki gibi bir kod kullanabilirsiniz. Kod içindeki dosya yollarını kendinize göre değiştirin. Verilerin Sayfa1 isimli bir sayfaya kopyalandığı kabul edilmiştir.

Kod:
Set baglanti = CreateObject("ADODB.Connection")
yol = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\genel.xls;Extended Properties=""Excel 8.0;HDR=no;IMEX=1"";"
baglanti.Open yol
Set RS = baglanti.Execute("[telefonlar$A1:AZ65536]")
[sayfa1!a1].CopyFromRecordset RS
RS.Close
baglanti.Close
 
Kod:
Sub Test()
    'Haluk 17/02/2008
    Dim DB As Object
    Dim RS As Object
    Dim dbRow As Long
    Dim KapDosya As Variant
    
    KapDosya = Application.GetOpenFilename("Veri tabanı (*.xls), *.xls", , "Veri tabanı seçin....")
    
    If Not KapDosya = False Then
        On Error Resume Next
            Set daoDBEngine = CreateObject("DAO.DBEngine")
            Set daoDBEngine = CreateObject("DAO.DBEngine.36")
        On Error GoTo 0
        
        Set DB = daoDBEngine.OpenDatabase(KapDosya, False, False, "Excel 8.0; HDR=Yes; IMEX=1;")
        Set RS = DB.OpenRecordset("select * from [Telefonlar$]")
        
        Range("A1").CopyFromRecordset RS
        
        RS.Close
        DB.Close
    End If
    Set RS = Nothing
    Set DB = Nothing
    Set daoDBEngine = Nothing
End Sub
 
Sayın Leventm teşekkür ederim, gayet güzel çalışıyor.

Sayfanın isminin de aynı olması için nasıl bir ekleme yapmak gerekir ?
Şöyleki, çalışma kitabımda tek bir sayfa var.
Yeni bir sayfa oluşturup ismini Telefonlar şeklinde değiştirip,
diğer dosyadaki Telefonlar sayfasındaki verileri bu sayfaya taşımak istiyorum.

Sizin yazdığınız kodlara nasıl bir ekleme yapmalıyım ?
 
Sayın Haluk, ilginize teşekkür ederim.

Makronuz istediğimden fazlasını veriyor.

Ancak bir sorun var :

kopyalayacağım sayfada 15.000 adet satır bulunuyor.
Yazmış olduğunuz kodları çalıştırdığımda
2048. satıra kadar verileri getirdikten sonra

Run-time error '-2147467259 (80004005)':
Method 'CopyFromRecordset' of object 'Range' failed

şeklinde hata mesajı vererek

Range("A1").CopyFromRecordset RS

ifadesini işaret ediyor ....

nasıl bir düzenleme yapmamız gerekir ?
 
Merhaba

Ben levent beyin kodunu çalıştıramadım.
İlk satırda Set bağlantıda compile error invalid outside prosedure hatası veriyor.
Acaba referanslar mı gerekiyor, rica etsem ornek bir dosya ekleyebilirmisiniz acaba.?
Haluk Beyin örneğini çalıştırdım ama ondada dosyayı kendim seçmek istemediğim için kullanamadım.

Yardımlarınızı esirgemediğiniz için şimdiden teşekkürler.
 
Selamlar,
Sayın Ustalarım, bu konuyla ilgili şöyle bir uygulama gerekli. Açık dosyanın A1 hücresine aranan değeri yazıp, veri tabanında yani kapalı dosya (misal Sayfa1 A sütununda) bulunan değerin bulunduğu satırı açık dosyaya alamazmıyız.
 
Yada daha önemli olan bunu access veri tabanından nasıl yapabiliriz.
 
Levent beyin kodunun başına Sub getirince çalıştı.

Kod:
Sub x()
Set baglanti = CreateObject("ADODB.Connection")
yol = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\genel.xls;Extended Properties=""Excel 8.0;HDR=no;IMEX=1"";"
baglanti.Open yol
Set RS = baglanti.Execute("[telefonlar$A1:AZ65536]")
[sayfa1!a1].CopyFromRecordset RS
RS.Close
baglanti.Close
End Sub

:)
 
Geri
Üst