Excel kitabından veri alma

bafralifatih55

Altın Üye
Katılım
31 Aralık 2011
Mesajlar
170
Excel Vers. ve Dili
2016 türkçe
merhabalar arkadaşlar
boş bir excel sayfasına daha nce kayıtlı olan deneme.xlsx dosyasındaki sayfa1!A:A sütunundaki verileri her açılışta verileri otomtik alacak şekilde ayarlamam gerek. böyle bir işlemi nasıl yapabilirim?
teşekkürler.
 

cengizdemir72

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
189
Excel Vers. ve Dili
Excel 2013 Türkçe
Çok basit şekilde, kaynak dosyadaki A sütununu kopyalayıp; hedef dosyanıza yapıştırırken özel yapıştırı seçip, bağlantılı yapıştır yapabilirsiniz.
Bu yöntemin dezavantajı,formül olduğu için; hedef dosyafa yapacağınız her işlemde biraz yavaşlama olacaktir.
 

bafralifatih55

Altın Üye
Katılım
31 Aralık 2011
Mesajlar
170
Excel Vers. ve Dili
2016 türkçe
merhaba
hocam sorgu olarak ekleme yapsam açılışta otomatik güncellemiyor galiba.
bu şekilde bir çözüm lsa çok güzel olur aslında.
 

cengizdemir72

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
189
Excel Vers. ve Dili
Excel 2013 Türkçe
Sorgu hakkında cok detaylı bilgim yok.
Bilgisi olan bir üstad yardımcı olabilir sanırım.
Başlangıçta sorguyu güncelleyecek bir makro da işinizi görebilir belki.
:)
 

Korhan Ayhan

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
28,164
Excel Vers. ve Dili
OFFICE 2019 PRO TR
Dosyanıza bir modül ekleyip aşağıdaki kodu uygulayın.

Dosya yolunu ve sayfa isimlerini kendinize göre düzenlersiniz.

Kodlar dosya açılışında otomatik çalışacaktır.

C++:
Option Explicit

Sub Auto_Open()
    Dim Dosya As String, S1 As Worksheet, Baglanti As Object
    Dim Kayit_Seti As Object, Sorgu As String, Zaman As Double
    
    Dosya = "C:\Desktop\Deneme.xlsx"
    
    If Dir(Dosya) = "" Then
        MsgBox "Dosya bulunmadı!", vbCritical
        Exit Sub
    End If
    
    Zaman = Timer
    
    Set Baglanti = CreateObject("AdoDb.Connection")
    Set Kayit_Seti = CreateObject("AdoDb.Recordset")
    Set S1 = Sheets("Sayfa1")
    
    S1.Range("A2:A" & S1.Rows.Count).Clear
    
    Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    Dosya & ";Extended Properties=""Excel 12.0;Hdr=No"""
            
    Sorgu = "Select F1 From [Sayfa1$A:A]"
    Kayit_Seti.Open Sorgu, Baglanti, 1, 1
    If Kayit_Seti.RecordCount > 0 Then
        S1.Range("A1").CopyFromRecordset Kayit_Seti
        S1.Columns.AutoFit
    End If
        
    If Kayit_Seti.State <> 0 Then Kayit_Seti.Close
    If Baglanti.State <> 0 Then Baglanti.Close
    
    MsgBox "Veri aktarımı tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
    
    Set Kayit_Seti = Nothing
    Set Baglanti = Nothing
    Set S1 = Nothing
End Sub
 
Üst