Sn. Mumya;
İsdeğiniz şekilde düzenledim kontrol edebilirmisiniz. Programın Çalışma Algoritması aşğıdaki gibidir.
1- Ürün tanımlamarı yapılırken Tederik Yeri girilmesi gerekir.
2- Ürün hangi Tedarikçiye girilmiş ise Kaydi işlemler İlk olarak giriş ise Depo Girişe işlenecek Çıkış ise Depo Çıkışa işlenecek sonra İlgili Tedarikçi bölümüne işlenecek.
3-Tedarikçi Bölümülerinde İşlem Türü'ne Giriş ise Depo Giriş olarak yazak, İşlem Çıkış ise Depo Çıkış olarak yazacak.
4- Ürün Giriş Çıkışları Detaylı olarak hem Tadarikçi bazında kontrol edilebilecektir. Giriş Miktarı Toplamı - Çıkış Miktarları Toplamı = Kaydi Stok olmalıdır.
Sanırım isdeğiniz bu şekildeydi.
Konuyu diğer arkadaşlarımızında anlayabilmesi için anlatmak isterim.
Programı Özetliyecek olursak Sn. Mumya
Excel ile bir stok takip programı yapmaya çalışıyor. Stok Takip programında Ürün Tanımlaması Yapılacak Tanımlı olan ürünlerin Depo Giriş - Depo Çıkış ve Tedarik Yerleri bazında işlemlerin Kaydedilip takip edilmesidir.
1- Program ilk olarak tasarlandığında Giriş veya Çıkış işlemi yapıldığında Depo Stok miktarı kaç ise İşlem Miktarının Stok Miktarından düşürülerek Kalan sütununa yazılması istenmiştir. Bu işlem için kalan = Kaydi - Giriş&Çıkış olarak bir işlem yazılmış bu hatalı bir yazımdı düzeltmek için ilk olarak kalan adında bir değişken tanımlıyarak sorunu çözdük.
2- Sonra Kodları incelediğimizde kalan değişkenine gerek olmadığına karar verdik ve kalan sütununa direk olarak Depo kaydi - Çıkış ve Depo kaydi + Giriş yaparak işlemi kısalttık sorun çözüldü.
Set ara = Sheets("STOK").Range("b2:b65536").Find(C1, , xlValues, xlWhole)
If Not ara Is Nothing Then
Sheets("STOK").Cells(ara.Row, 5).Value = Val(Sheets("STOK").Cells(ara.Row, 5).Value) + Val(C4)
Else
MsgBox "İşlemi Başarısız Stok Kodu ve Adet Kısmını Kontrol Ediniz.", , "BİLGİ"
Exit Sub
4- Bunda sonraki işlem Depo Giriş Butonuna basıldığında Depo Giriş bölümüne giriş işlemi ile ilgili bilgilerin yazılması, Depo Çıkış Butonuna basıldığında Depo Çıkış bölümüne çıkış ile ilgili bilgilerin yazılması ve Stok bölümünede Son Kaydi stok bilgilerinin güncellenmesidir.
son = Sheets("DEPO GİRİŞ").Range("a65536").End(3).Row + 1
Sheets("DEPO GİRİŞ").Cells(son, 1).Value = C1.Value
Sheets("DEPO GİRİŞ").Cells(son, 2).Value = TextBox2.Value
Sheets("DEPO GİRİŞ").Cells(son, 3).Value = C2.Value
Sheets("DEPO GİRİŞ").Cells(son, 4).Value = Val(C3.Value)
Sheets("DEPO GİRİŞ").Cells(son, 5).Value = "DEPO GİRİŞİ"
Sheets("DEPO GİRİŞ").Cells(son, 6).Value = Val(C4.Value)
Sheets("DEPO GİRİŞ").Cells(son, 7).Value = Val(C3.Value) + Val(C4.Value)
Sheets("DEPO GİRİŞ").Cells(son, 8).Value = C5.Value
MsgBox "Ürün giriş İşlemi Başarılı", , "BİLGİ"
For i = 1 To 5
Controls("c" & i).Text = ""
Next i
3- Daha sonra Konuyu anlayamadığımız için DENEME, DENEME1 gibi sütun isimleri yazıyordu tabloda Sn. Mumya ya sorduğumuzda bunların tedarikçi olduğunuz ürünün hangi Tedarikçiye ait ise giriş çıkış işlemlerinin ilgili Tedarikçi bölümüne yazılması istenmiştir. Bu işlemde yapılarak program bitirilmiştir.
If (C8.Value = "Firma1") Then
son = Sheets("Firma1").Range("a65536").End(3).Row + 1
Sheets("Firma1").Cells(son, 1).Value = C1.Value
Sheets("Firma1").Cells(son, 2).Value = TextBox2.Value
Sheets("Firma1").Cells(son, 3).Value = C2.Value
Sheets("Firma1").Cells(son, 4).Value = Val(C3.Value)
Sheets("Firma1").Cells(son, 5).Value = "DEPO GİRİŞİ"
Sheets("Firma1").Cells(son, 6).Value = Val(C4.Value)
Sheets("Firma1").Cells(son, 7).Value = Val(C3.Value) - Val(C4.Value)
Sheets("Firma1").Cells(son, 8).Value = C5.Value
Kolay gelsin.