• DİKKAT

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

Sipariş stok kıyaslama

Katılım
22 Ocak 2016
Mesajlar
21
Excel Vers. ve Dili
Office 2016
Merhabalar öncelikle. Ekli dosyada ne istmiş olduğumu detaylı olarak belirttim. Özetle bir ürünün sipariş miktarını toplayarak stoktaki ile karşılaştırması ve ilk - ye düştüğümüz noktanın tarihini bir sütuna yazdırmasıdır.
Yardımlarınızı rica ederim
 

Ekli dosyalar

Merhaba,

Deneyiniz...

Kod:
Option Explicit
Sub deneme()
Dim Top As Double, d As Object, b As Variant, a()
Dim son As Long, s As Long, i As Long, k As Long
Sheets("nihai").Select
    Set d = CreateObject("Scripting.Dictionary")
    son = Range("E" & Rows.Count).End(3).Row
    a = Range("H2:H" & son)
    Range("W2:W" & Rows.Count).ClearContents
        For i = 1 To UBound(a)
            d(a(i, 1)) = ""
        Next i
        For Each b In d.keys
            For k = 2 To son
                If b = Cells(k, "H") Then
                    Top = Top + Cells(k, "I")
                    If Top <= Cells(k, "K") Then
                        s = Cells(k, "I").Row + 1
                    End If
                End If
                
            Next k
        Range("W" & s) = Format(Range("E" & s), "dd.mm.yyyy")
        Top = 0
        Next b
    MsgBox "İşlem tamam.", vbInformation
End Sub
 

Ekli dosyalar

Son düzenleme:
merhabalar kodda ilgili satıra tarih geliyor. bU TARİH örneğin tüm x ler için yazmalı. Y için olan değer tüm y ler için yazmalıdır. Bunuda yaparsak süper olur
 
Ne yapmak istediğinizi anlamadım. Olması gereken sonucu dosya ekleyerek destekleyiniz.
 
ÖRNEĞİ biraz daha spesifik hale getirdim. stok 0 ve diğer durumları belirttim.Umarım anlaşlır. ilgi ve alakanız için çok teşekkür ederim

Özet ile yazmış olduğunuz makronun 2 eksiği mevcut. 1. durum stok miktarı başlangıçta siparişten az ise hata veriyor. 2. durum w sütununda bir ürün için ilk doğru değeri ilgili satıra yazıyor. İstediğim şey aynı ürüne ait tüm w satırlarına bu değeri yazmasıdır
 
Merhaba.

Aşağıdaki kod'u dener misiniz?

Kod:
[FONT="Arial Narrow"][B]Sub EN_YAKIN_TERMİN()[/B]
Set WF = WorksheetFunction
If [W65536].End(3).Row > 2 Then Range("W2:W" & [W65536].End(3).Row).ClearContents
Application.Calculation = xlCalculationManual: Application.ScreenUpdating = False
For satır = 2 To [E65536].End(3).Row
    If Cells(satır - 1, "H") <> Cells(satır, "H") Then
    ürün = Cells(satır, "H")
    ilk = WF.Match(ürün, Range("H:H"), 0)
    son = ilk + WF.CountIf(Range("H:H"), ürün) - 1
    If WF.Sum(Range("I" & ilk & ":I" & son)) < Cells(satır, "K") Then
    Range("W" & ilk & ":W" & son) = "STOK YETERLİ"
    GoTo 10: End If
For sat = ilk To son
    If WF.Sum(Range("I" & ilk & ":I" & sat)) > Cells(sat, "K") Then
    For satt = ilk To son
        Cells(satt, "W") = Cells(sat, "E")
    Next: GoTo 10
    End If: Next
10: satır = son
End If: Next
Range("W:W").NumberFormat = "dd/mm/yyyy": Columns("W").AutoFit
Application.Calculation = xlCalculationAutomatic: Application.ScreenUpdating = True
MsgBox "İŞLEM TAMAMLANDI"
[B]End Sub[/B][/FONT]
 
Son düzenleme:
İyi günler dilerim.
 
Geri
Üst