• DİKKAT

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

Sipariş tarihine göre geçerli fiyatı getirme

YABANIM

Altın Üye
Katılım
28 Aralık 2005
Mesajlar
18
Excel Vers. ve Dili
EXCEL 2010
Merhabalar
Dostlar değerli hocalarım bir sıkıntım var.Ancak işin içinden çıkamadım ekte fiyat takip diye bir dosyam bulunmakta.Bu dosyada iki ayrı sayfam var. Ana rapor sayfasında bu güne kadar verdiğim siparişlerin dökümleri bulunmakta.Diğer sayfadada Bu güne kadar bu malzemeler ile ilgili değişen fiyatlar bulunmakta.Sorum şu ana raporda almış olduğum malzemenin fiyatını tarihe veya başka bir kritere göre fiyat listesinde arasın ararken eğer vermiş olduğum siparişin tarihi fiyat listesindeki o malzemeye ait yeni fiyatın tarihinden önce ise bir önceki tarihli fiyat ve bu fiyata bağlı bağlı firmayı getirsin. örnek
ana raporda 100 kodlu malzemeden fiyat listesinde farklı tarihlerde geçerlilik kazanan fiyat lar bulunmakta siparişi verdiğim tarihi baz alarak bu tarihte veya bu tarihten önceki fiyatı ve bağlı firmayı getirsin.Formül veya makro farketmez ancak makro tercihimdir.

İlgilenirseniz çok sevinirim.
Şimdiden çok teşekkür ederim
 

Ekli dosyalar

Dostlar yardımcı olurmusunuz. Formülle yaptığım zaman inanılmaz derecede dosyayı zorluyor.Makro ile yapma şansım yokmudur. Bu arada formülü gene bir abimizden Ali Beyden aldığımı belirtmek isterim.Asla emeğe saygısızlık etmem, etmeyelim. formül aşağıda ilgilenenler inceleyebilir.
Ana rapor sayfasının E2 hücresine

=İNDİS('fiyat listesi'!$D$2:$D$80;KAÇINCI(MAK(EĞER('fiyat listesi'!$A$2:$A$80=A2;EĞER('fiyat listesi'!$C$2:$C$80<=C2;'fiyat listesi'!$C$2:$C$80)));EĞER('fiyat listesi'!$A$2:$A$80=A2;'fiyat listesi'!$C$2:$C$80);0))


yazıp CTRL+SHIFT+ENTER tuşlarına birlikte basarak formül girişini tamamlayıp aşağı doğru çekiniz.

Ana rapor sayfasının F2 hücresine

=İNDİS('fiyat listesi'!$E$2:$E$80;KAÇINCI(MAK(EĞER('fiyat listesi'!$A$2:$A$80=A2;EĞER('fiyat listesi'!$C$2:$C$80<=C2;'fiyat listesi'!$C$2:$C$80)));EĞER('fiyat listesi'!$A$2:$A$80=A2;'fiyat listesi'!$C$2:$C$80);0))


yazıp CTRL+SHIFT+ENTER tuşlarına birlikte basarak formül girişini tamamlayıp aşağı doğru çekiniz.

Not: Excel bu işlem sonucunda formül başına ve sonuna { } ayıraçlarını ekleyecektir.

101 nolu malzeme yok o nedenle #YOK işareti gelebilir.

Bunu düzeltme için
=EĞERHATA(Formül;"")
şeklinde düzenleyip CTRL+SHIFT+ENTER tuşlarına birlikte basarak formül girişini tamamlayıp aşağı doğru çekebilirsiniz.
 
Son düzenleme:
Merhaba,

Kod:
Sub Bul_Yaz()
 
    Dim Sf As Worksheet, i As Long, c As Range, Adr As Variant
    
    Set Sf = Sheets("fiyat listesi")
 
    Application.ScreenUpdating = False
    Sheets("ana rapor").Select
    Range("E2:G65500").ClearContents
 
    With Sf.Range("A:A")
        For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
            Set c = .Find(Cells(i, "A"), , xlValues, xlWhole)
            If Not c Is Nothing Then
              Adr = c.Address
              Do
                If Sf.Cells(c.Row, "C") <= Cells(i, "C") Then
                    Cells(i, "E") = Sf.Cells(c.Row, "D")
                    Cells(i, "F") = Sf.Cells(c.Row, "E")
                    Cells(i, "G") = Cells(i, "D") * Cells(i, "E")
                    Exit Do
                End If
                Set c = .FindNext(c)
              Loop While Not c Is Nothing And c.Address <> Adr
            End If
        Next i
    End With
 
    Application.ScreenUpdating = True
 
End Sub

İstediğiniz bu mu?

.
 
Geri
Üst