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ı
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