Excel Diğer Sayfadan Veri Alma

Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
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

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
553
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
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
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
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
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Merhaba Çözüm Varmııdır Acaba?
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
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
 
Üst