Değeri döndürmek için yeni sayfada yeni satıra yazma koşullarını kullanma


0

Siparişlerin aylık olarak yerine getirildiğini takip etmek için bir veri giriş sayfası veya formu kullanabilmek istiyorum. Her bir SKU'ya karşı bazı SKU'larımız var, diyelim ki 10 ve çeşitli siparişler. Üretim, her gün tüm SKU'lara tekdüze olmayan bir miktar tamamlar ve üretim kaydı herhangi bir gün, herhangi bir günden fazla, her gün (24/7) yapılabilir.

SKU'lar A sütununda listeleniyorsa, B ve I sütunlarındaki (veya üretim operatörünün) toplam siparişi C sütununda geçerli bir üretim yayınladıysa, D sütununun kalan sipariş miktarını döndürmesini istiyorum (bu nedenle daha önce girilen tüm ürünler SKU farklı bir sayfada tutulur (tarih ve saate göre) ve sürekli toplanır.)

SKU Toplam Sipariş Cari Üretim Kalan Üretim
15.000 100 15.000 - (A’nın 100+ önceki üretimi)
B 2.000 0 2.000 - (önceki B üretimi)
7.500 3.000 7.500 - (3.000 + önceki üretim C)

Herhangi bir yardım için teşekkürler. Veri giriş sayfası (veya formu) sahip olduğumuz SKU'ların sayısı (10'dan fazla) ve verilere giren kişilerin sayısı ve üstünlüğü nedeniyle önemlidir.

Yanıtlar:


1

Aradığın şey bir VBA çözümüne çok uygun. Test çalışma kitabımda, önerdiğiniz satırlar boyunca iki çalışma sayfası hazırladım.

Bunlardan ilki, veri giriş formu görevi görecek olan özet çalışma sayfasıdır. Bir veya daha fazla SKU için geçerli üretim miktarları, aşağıdaki ekran görüntüsünde gösterildiği gibi, C sütunundaki vurgulanan alana girilecektir. (Sadece elle girilen diğer öğelerin her bir SKU için toplam aylık siparişler olacağını varsayıyorum.)

Üretim miktarları programatik olarak ayrıntılı bir çalışma sayfasına kaydedilecek ve ardından ilk çalışma sayfasının özet tablosunda "önceki üretim" olarak özetlenecektir.

Ayrıntıya gönderme, özet çalışma sayfasındaki bir komut düğmesiyle tetiklenir. Bu düğmeye basıldığında, özet çalışma sayfasının geçerli üretim sütununda yer alan her miktar, etkilenen SKU ve geçerli tarih ve saatle birlikte ayrıntı sayfasına kopyalanır. Kopyalamadan sonra, özet sayfasının mevcut üretim sütunu silinir.

Komut düğmesi, şeridin Geliştirici sekmesinden, özet sayfasına bir düğme formu eklenerek oluşturulur. Ardından, kod Tasarım Modu seçilerek, düğmeye sağ tıklanarak ve Kod Görüntüle ile seçerek ve kodu gelen düzenleme paneline yapıştırarak düğmeye bağlanır.

Bu süreç biraz içerdiği için test çalışma kitabımı bu Dropbox bağlantısı üzerinden kullanabildim .

Özet çalışma sayfası

Özet çalışma sayfası

Detay çalışma

Detay çalışma

Komut düğmesi kodu

  Option Explicit

  Private Sub CommandButton1_Click()

     Dim skuArr As Variant
     Dim prodArr As Variant
     Dim postRow As Long
     Dim currDate As Long
     Dim currTime As Double
     Dim i As Long

     'turn off background processes
     With Excel.Application
        .ScreenUpdating = False
        .Calculation = Excel.xlCalculationManual
        .EnableEvents = False
     End With

     'put SKUs and current production amounts into arrays
     skuArr = Range("Summary!SKUS").Value
     prodArr = Range("Summary!CurrentProd").Value

     'find first empty row of detail worksheet
     postRow = 1 + Worksheets("Detail").Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row

     'save date and time
     currDate = Range("Summary!CurrentDate").Value
     currTime = Range("Summary!CurrentTime").Value

     With Worksheets("Detail")

        'write date, time, SKU, and new prod amount to detail sheet
        'cell formatting lines can be eliminated if Detail sheet is preformatted
        For i = LBound(skuArr, 1) To UBound(skuArr, 1)
           If Not (prodArr(i, 1) = "") Then
              .Cells(postRow, 1).Value = currDate
              .Cells(postRow, 1).NumberFormat = "mm/dd/yy"
              .Cells(postRow, 2).Value = currTime
              .Cells(postRow, 2).NumberFormat = "HH:MM"
              .Cells(postRow, 3).Value = skuArr(i, 1)
              .Cells(postRow, 3).HorizontalAlignment = xlCenter
              .Cells(postRow, 4).Value = prodArr(i, 1)
              postRow = postRow + 1
           End If
        Next i
     End With

     'Clear posted amounts from summary sheet
     Range("Summary!CurrentProd").Value = ""

     With Excel.Application
        .ScreenUpdating = True
        .Calculation = Excel.xlCalculationAutomatic
        .EnableEvents = True
     End With

  End Sub

Bu fantastik. Ayrıntılı talimat ve elektronik tablonun bağlantısı için çok teşekkürler.
KDelane

Harika! Yardım edebildiğime sevindim. Başkalarına cevabı kabul ederek (onay işaretini tıklatarak) bu sorunun sizin sorununuzu çözdüğünü gösterebilirsiniz. Bu iki şey yapar. Sorununuzun çözüldüğünü herkesin bilmesini sağlar ve yardım için kredi almanıza yardımcı olan kişiye verir.
chuff

0

Belki de toplam üretimi özetleyen ve SKU toplamlarını buradan ColumnD ilk sayfa formülüne bağlayan bir Özet Tablo:

SU593676 örneği

Ancak bu, bir sipariş tamamlandığında ne olması gerektiğini ele almaya çalışmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.