• DİKKAT

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

Excel Diğer Sayfadan Veri Alma

Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Merhabalar ekteki dosyamda sql'den tümünü yenile basarak veri alıyorum. Benim Yapmak istediğim sayfa1'deki F sütunundaki envanter alanına merkezenvanter sayfasındaki D sütunundaki envanter gelsin stokkodu ile karşılaştırma yaparak .Tümünü Yenile Bastıgımda Envanter Alanıda Güncellesin Sayfa1'deki . Kolay Gelsin Yardımcı Olursanız Sevinirim.
 

Ekli dosyalar

Merhaba,
Yenile kodlarınızın sonuna bu kodları ekleyiniz:

Kod:
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("MerkezEnvanter")
son = s1.Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
s1.Cells(i, 6).Formula = Application.WorksheetFunction.VLookup(s1.Cells(i, 3), s2.Range("A:D"), 4, 0)
Next
 
Merhaba,
Yenile kodlarınızın sonuna bu kodları ekleyiniz:

Kod:
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("MerkezEnvanter")
son = s1.Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
s1.Cells(i, 6).Formula = Application.WorksheetFunction.VLookup(s1.Cells(i, 3), s2.Range("A:D"), 4, 0)
Next
Merhaba Kodu Denedim Ama Yanlış Veriler Geliyor. Yenile Yaptıgımda Büyük İhtimal Eski Veri Kalıyor Sanırım Bİrde Başka Veriler Çagırdıgımda
Worksheetfunction sınıfıının vlookup özelliğli alınamıyor hatası veriyor
 
F2'ye yazıp formülle otomatik çekebilirsiniz.
Kod:
=DÜŞEYARA([@STOKKODU];Tablo__195.142.107.17_kaynağından_sorgula3;4;0)



Makro kaydeti başlatıp, tabloyu yenileyin, üretilen kodlarının altına
Call test
ekleyin. Yenileme işlemini bu daha sonra bu makroyu kullanarak yapabilirsiniz.
Kod:
Sub test()
    
    Dim rng As Range
    Dim tbl As ListObject, lst(), i&

    Set tbl = Sheets("MerkezEnvanter").ListObjects("Tablo__195.142.107.17_kaynağından_sorgula3")
    lst = tbl.DataBodyRange.Value
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(lst)
            .Item(lst(i, 1)) = lst(i, 4)
        Next i

        Set tbl = Sheets("Sayfa1").ListObjects("Tablo__195.142.107.17_kaynağından_sorgula")
        For i = 1 To tbl.Range.Rows.Count
            If .exists(tbl.DataBodyRange.Rows(i).Cells(3).Value) Then
                tbl.DataBodyRange.Rows(i).Cells(6).Value = .Item(tbl.DataBodyRange.Rows(i).Cells(3).Value)
            End If
        Next i
    End With

End Sub
 
Geri
Üst