Soru Düşeyara Formülü Yardımı

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
710
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Merhaba;

Ekli dosyamda iki sayfa var.
Ürün listesi sayfasında; Ürün Kodu, Oluşturma Tarihi ve Tedarikçi Kodu var.
İşlem sayfasında ise Ürün kodu ve Tedarikçi Kodu var.
Tedarikçi kodunu ise düşeyara ile getirmeye çalışıyorum.

Bunu yaparken gideceğimiz yol;
İşlem sayfasındaki B2 hücresini, Ürün listesi sayfasında ara, oluşturma tarihi en son olan tarihten, bir öncekini bul ve C2 hücresine yaz.
Formül sonucu 542 olmalı.
Yardımcı olabilir misiniz ?


 
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,153
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Aşağıdaki kodu "İşlem Sayfası" kod kısmına kopyalayın.
"İşlem Sayfası" B kolonunda bir değişiklik olduğunda kod otomatik çalışacakatır.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim İlkBulunan As Range
    Dim Bul As Range
    Dim Bul2 As Range
    Dim Tarih As Date
    Dim BirOnceki As Long
    If Not Intersect(Target, Range("B2:B" & Rows.Count)) Is Nothing Then
        With Worksheets("Ürün Listesi")
            Set İlkBulunan = .Range("B:B").Find(what:=Target.Value, lookat:=xlWhole)
            Set Bul = İlkBulunan
            Do
                BirOnceki = Bul.Row
                If Tarih < .Cells(Bul.Row, "C") Then Tarih = .Cells(Bul.Row, "C")
                Set Bul = .Range("B:B").FindNext(Bul)
                Set Bul2 = .Range("B:B").FindNext(Bul)
                
            Loop While İlkBulunan.Address <> Bul2.Address
            Application.EnableEvents = False
            Cells(Target.Row, "A").Value = .Cells(BirOnceki, "A").Value
            Cells(Target.Row, "C") = Tarih
            Application.EnableEvents = True
        End With
    End If
End Sub
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
710
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Muzaffer Ali;

Kodu çalıştırdım. 542 sonucu A hücresine geliyor ama C hücresinde olmalı. Tarih verisinin gelmesini istemiyoruz.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,153
Excel Vers. ve Dili
2019 Türkçe
Deneyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim İlkBulunan As Range
    Dim Bul As Range
    Dim Bul2 As Range
    Dim Tarih As Date
    Dim BirOnceki As Long
    If Not Intersect(Target, Range("B2:B" & Rows.Count)) Is Nothing Then
        With Worksheets("Ürün Listesi")
            Set İlkBulunan = .Range("B:B").Find(what:=Target.Value, lookat:=xlWhole)
            Set Bul = İlkBulunan
            Do
                BirOnceki = Bul.Row
                If Tarih < .Cells(Bul.Row, "C") Then Tarih = .Cells(Bul.Row, "C")
                Set Bul = .Range("B:B").FindNext(Bul)
                Set Bul2 = .Range("B:B").FindNext(Bul)
                
            Loop While İlkBulunan.Address <> Bul2.Address
            Application.EnableEvents = False
            Cells(Target.Row, "C") = .Cells(BirOnceki, "A").Value
            Application.EnableEvents = True
        End With
    End If
End Sub
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
710
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Elinize sağlık, güzel oldu
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
710
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Merhaba;

Ekli dosyamda iki sayfa var.
Amacımız, işlem sayfasında tedarikçi adı BATI olan ve tedarikçi kodu 15-72 olan değerleri ürün listesi sayfasında bulmak.
Bu işlemin sonucu, ürün listesi sayfasındaki 2. ve 3. satırlardır.
Ortaya çıkan bu iki değerden işlem sayfasında A hücresinde olan 881 ürün kodunun ürün listesinde oluşturma tarihi olan 18.01.2024 den küçük olan tarihin ürün kodunu işlem sayfası H sütununa yazdırmak. Sonuç 542 olmalı.

Biraz karışık gibi, daha kolay bir anlatım yolu bulamadım.
Ekte daha önce Muzaffer Ali Bey'in çalışması vardır, onu geliştirmek istiyorum.
Bu arada ekteki makroda doğru sonuç getirmiyor.

Yardım edebilir misiniz ?
 

Ekli dosyalar

Üst