Dosyadan veri çekme

Katılım
1 Ekim 2018
Mesajlar
54
Excel Vers. ve Dili
10 türkçe
Altın Üyelik Bitiş Tarihi
08-01-2024
Arkadaşlar merhaba. 2 tane excel dosyam mevcut. Kitap 1 isimli dosyamda her ayın işgünlerini sayfalar olarak isimlendiriyorum. Her sayfada A1 hücresine rakamsal bir veri giriyorum. Kitap 2 isimli dosyamda da A1 hücresine işgünlerine denk gelen tarihleri giriyorum. Yapmak istediğim Kitap 2 dosyasının B1 hücresine A1 deki tarihe göre Kitap 1 dosyasının ilgili sayfasındaki ilgili hücredeki veriyi getirmek. Excel ile böyle bir şey yapmak mümkün müdür? Yardımcı olursanız memnun olurum. İlgilenen arkadaşlarıma şimdiden çok teşekkür ederim.
 

Ekli dosyalar

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,168
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Alternatif: Her iki dosyada .xls olursa ve her iki dosyada aynı yerde ise;
Deneyin.
İyi çalışmalar.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,173
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

ADO çözümü;

Sonuç alabilmek için KİTAP 1 isimli dosyanızı xlsx uzantılı kaydetmek zorunda kaldım. Diğer haliyle hata verdi.

C++:
Option Explicit

Sub Veri_Al()
    Dim Baglanti As Object, Kayit_Seti As Object, Sorgu As String
    
    Set Baglanti = CreateObject("AdoDB.Connection")
    Set Kayit_Seti = CreateObject("AdoDB.Recordset")
    
    If Val(Application.Version) < 12 Then
        Baglanti.Open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & _
        ThisWorkbook.Path & "\KİTAP 1.xls" & ";Extended Properties=""Excel 8.0;Hdr=No"""
    Else
        Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
        ThisWorkbook.Path & "\KİTAP 1.xlsx" & ";Extended Properties=""Excel 12.0;Hdr=No"""
    End If
    
    Sorgu = "Select * From [" & Range("A1").Text & "$A1:A1]"

    On Error Resume Next
    Kayit_Seti.Open Sorgu, Baglanti, 1, 1
    On Error GoTo 0
    
    Range("B1").ClearContents
    
    If Kayit_Seti.State = 0 Then
        MsgBox "Veri bulunamadı!", vbExclamation
    Else
        If Kayit_Seti.RecordCount > 0 Then
            Range("B1").CopyFromRecordset Kayit_Seti
        End If
    End If
    
    If Kayit_Seti.State <> 0 Then Kayit_Seti.Close
    If Baglanti.State <> 0 Then Baglanti.Close
  
    Set Kayit_Seti = Nothing
    Set Baglanti = Nothing
End Sub
 
Katılım
1 Ekim 2018
Mesajlar
54
Excel Vers. ve Dili
10 türkçe
Altın Üyelik Bitiş Tarihi
08-01-2024
Arkadaşlar ilginiz için teşekkür ederim. Emeğinize sağlık..
 
Üst