Değişken hücre verisine göre başka dosyadan veri çekme

Katılım
30 Haziran 2008
Mesajlar
58
Excel Vers. ve Dili
excel 2010 tr
Altın Üyelik Bitiş Tarihi
09-06-2023
Merhabalar,
Siteyi baya inceledim ama işimi görecek bir kod bulamadım..
Uzun süredir ara verdiğim için değişken tanımlamaları unutmuşum bir türlü beceremedim.
Rica etsem ekteki liste isimli dosyada hazırladığım kısa senaryoyu uygulayacak bir kod hazırlayabilir miyiz?
geri kalan işlemleri o kod üzerinden ben tamamlayabilirim.

İlginiz ve yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Korhan Ayhan

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

LİSTE isimli dosyanızda Sheet1 isimli sayfanızın kod bölümüne aşağıdaki kodu uygulayınız.

"sql.xlsx" isimli dosyanızda makro çalışıyor demişsiniz ama uzantısı XLSX olarak foruma yüklemişsiniz. Ben XLSM olacak şekilde ayarladım.

Önerdiğim kodu çalışması için 2 dosyanızda aynı klasörde olmalıdır. Eğer farklı yerlerde ise File_Path bölümünü revize etmeniz gerekecektir.

Kod içinde SQL_VERİ_ÇEKEN_MAKRO_ADI yazan yeride "sql" isimli dosyanızda çalıştığını belirttiğiniz makro adına göre revize etmelisiniz.

C++:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim File_Path As String, My_File As String, J_Kodu As String
    Dim WB As Workbook, S1 As Worksheet, Siparis_No As String
    
    If Intersect(Target, Range("B3:B" & Rows.Count)) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    
    If Target <> "" Then
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        Siparis_No = Replace(Replace(Target, "/", ""), "-", "")
        File_Path = ThisWorkbook.Path & "\"
        My_File = "sql.xlsm"
        Set WB = Workbooks.Open(File_Path & My_File)
        Set S1 = WB.Sheets("Sheet1")
        S1.Range("B2") = Siparis_No
        Application.Run "'" & My_File & "'!SQL_VERİ_ÇEKEN_MAKRO_ADI"
        J_Kodu = S1.Range("B3").Value
        WB.Close 1
        Target.Offset(, 2) = J_Kodu
        Set S1 = Nothing
        Set WB = Nothing
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub
 
Katılım
30 Haziran 2008
Mesajlar
58
Excel Vers. ve Dili
excel 2010 tr
Altın Üyelik Bitiş Tarihi
09-06-2023
Korhan Bey Merhabalar,

Tarif ettiğiniz şekilde uygulamayı yaptım yalnız sql isimli dosya daha önceden başka bir arkadaş tarafından hazırlanmış ve şifreli koruma altına alınmış makro ismine ulaşamıyorum,
makro adını yazmadan yapabileceğim başka bi yöntem var mıdır yoksa mutlaka makro adına ulaşmam mı gerekir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,263
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alt F8 tuşlarına basarsanız makrolar penceresi karşınıza gelir. Oradan ismini görebilirsiniz. Ya da kod buton yardımıyla çalışıyorsa butona sağ tıklayıp açılan menüden makro ata seçeneğini seçtiğinizde açılan pencerede makro adına erişebilirsiniz. Tabi makro gizlenmediyse..
 
Üst