Merhaba,
Bir çok firma kullandıkları sistemde yer alan stok listesiyle, gerçek durumu kontrol etmek için sayım yapar. Sayım firmaların en çok zaman kaybettikleri ve verimliliğin dibe vurduğu bir iştir. Sayım işlem hem çok zaman almakla birlikte çalışan kişilerin dikkatsizlikleri ya da art niyetli olmalarından kaynaklanan bir çok hatalı sonuçlar verir.
Firma sahipleri veya şirket yöneticileri, sorumlu olduğu işi en iyi şekilde kontrol edebilmeleri için insan etkisini en aza indirici tedbirler almak ister. Sayım işleminde insan etkisini en aza indirebilmek biraz Excel bilgisi ile mümkündür. Üstelik bunun için hiç bir bedel ödemeden gerçekleştirebilir.
Burada yapacağımız sayım programı oldukça sade bir programdır. Aynı anda bir çok kişi fiziki sayımı gerçekleştirebilir. Böylelikle bir kişinin 10 saatte yapabileceği bir sayım 10 kişinin 1 saatte yapmasıyla büyük zaman kazanılmış olur. Sayımı yapacak kişilerin herhangi bir bilgisayar bilgisine ihtiyacı yoktur. Sadece barkod okuyucunun okuma tetiğine basması yeterlidir.
Sayım programı iki Excel çalışma kitabında içinde bazı macro ve visual basic programlarından oluşur. Merak etmeyin o kadar zor değil. Bu sayfada tüm code'ları açık bir şekilde vereceğim. Sadece sayım kontrolünü yapacak kişi bir kaç basit konuya dikkat etmesi gerekir.
Sayım kontrol için iki liste gereklidir. Birincisi fiziki sayım listesi, ikincisi kullanılan sistemden alınan liste. Kullanılan sistem her firmada farklı olabilir. IFS, Micro, LOGO bazı programlar örnektir. Önemli olan kullanılan sistem programından stok sayım listesinin alınabilir olmasıdır.
Bir çok firma kullandıkları sistemde yer alan stok listesiyle, gerçek durumu kontrol etmek için sayım yapar. Sayım firmaların en çok zaman kaybettikleri ve verimliliğin dibe vurduğu bir iştir. Sayım işlem hem çok zaman almakla birlikte çalışan kişilerin dikkatsizlikleri ya da art niyetli olmalarından kaynaklanan bir çok hatalı sonuçlar verir.
Firma sahipleri veya şirket yöneticileri, sorumlu olduğu işi en iyi şekilde kontrol edebilmeleri için insan etkisini en aza indirici tedbirler almak ister. Sayım işleminde insan etkisini en aza indirebilmek biraz Excel bilgisi ile mümkündür. Üstelik bunun için hiç bir bedel ödemeden gerçekleştirebilir.
Burada yapacağımız sayım programı oldukça sade bir programdır. Aynı anda bir çok kişi fiziki sayımı gerçekleştirebilir. Böylelikle bir kişinin 10 saatte yapabileceği bir sayım 10 kişinin 1 saatte yapmasıyla büyük zaman kazanılmış olur. Sayımı yapacak kişilerin herhangi bir bilgisayar bilgisine ihtiyacı yoktur. Sadece barkod okuyucunun okuma tetiğine basması yeterlidir.
Sayım programı iki Excel çalışma kitabında içinde bazı macro ve visual basic programlarından oluşur. Merak etmeyin o kadar zor değil. Bu sayfada tüm code'ları açık bir şekilde vereceğim. Sadece sayım kontrolünü yapacak kişi bir kaç basit konuya dikkat etmesi gerekir.
Sayım kontrol için iki liste gereklidir. Birincisi fiziki sayım listesi, ikincisi kullanılan sistemden alınan liste. Kullanılan sistem her firmada farklı olabilir. IFS, Micro, LOGO bazı programlar örnektir. Önemli olan kullanılan sistem programından stok sayım listesinin alınabilir olmasıdır.
Sayım İşlemi
Sayım işlem genel olarak 4 aşamada tamamlanır.
- Kullanılan sistemden alınan liste elde edilir. Bu liste bilgisayarlarda kullandığınız programlarda sayıma gerek duyulan ürünlerin kendine has numaralarının kaydedildiği veri deposundan elde edilir. Örneğin Cep telefonları için IMEI numarası, müşteri hizmetleri için form numarası, ürn barkod numarası gibi...Bu listenin boş bir excel dosyasına kaydedilmesi.
- Sistemden alınan listenin gerçekte var olduğunu, ilgili ürünlerin uygun seri numaralarının barkod okuyucu ile fiziki olarak excel dosyamızın ilkine kaydedilmesi.
- Oluşturulan iki listenin birlikte yapacağımız Sayım Kontrol Programımızda çalıştırılarak farklılıkların tespit edilmesi. Programımız farklılık listesini iki yönlü oluşturur. Böylelikle insan hataları ya da art niyetlileri tespit eder.
- Programın oluşturduğu farklılık listesinde belirtilen ürünlerin listesi, ilgili kişilere verilerek bulması istenir. Herhangi bir müdahale yapılmaması için fiziki olarak ürünler talep edilir.
Sayım İşlemi 1. Adım
Kullanılan sistem programından elde edilen liste, ürünlerin kendine has numarasını içermelidir. Örneğin bir teknik serviste cihazların kayıt form numarası, bir bilgisayar mağazada ürünlerin barkod numarası gibi.. Bu liste fizik sayım yapılırken kullanılan barkod okuyucuların okuduğu değerlerle aynı olmalıdır. Eğer aynı değilse sistem programında elde edilecek liste bu mantığa göre belirlenmelidir.
Sayım İşlemi 2.Adım
İkinci adım fizik olarak sayımı yapılacak ürünleri ilgili değerlerin barkod okuyucu ya da manuel elle yazılabileceği Excel çalışma kitabını oluşturalım. Öncelikle basit bir Excel çalışma kitabı açalım. Otomatik olarak 3 sayfa gelecektir. Bu saya isimlerini aşağıda macro kodlarında görülen isimlerde isimler verelim. MASA1 , MASA2 ... gibi sayım yapacak kişi ismi kadar Masa oluşturalım. Son olarak İlgili kişilerin yapığı sayımları birleştiren TOPLAM sayfasını da oluşturalım. Bu çalışma kitabında toplam 11 Sayfa oluşturduk. Ekran görüntüsü aşağıdaki gibidir.
Toplam Sayfasında, LİSTELE ve TEMİZLE isminde iki tane buton vardır. Sayıma başlamadan önce daha önceki MASA verilerinin silinmesi ve temizlenmesi için kullanılır.
TEMİZLE Butonu Macro'su
Sub temizle()
'
' temizle Macro
' Macro recorded 16.01.2007 by Zafer_Olgun
'
'
Range("A2:B5000").Select
Selection.ClearContents
Range("A2").Select
Sheets("MASA-10").Select
Range("A2:B5000").Select
Selection.ClearContents
Range("A2").Select
Sheets("MASA-9").Select
Range("A2:B5000").Select
Selection.ClearContents
Range("A2").Select
Sheets("MASA-8").Select
Range("A2:B5000").Select
Selection.ClearContents
Range("A2").Select
Sheets("MASA-7").Select
Range("A2:B5000").Select
Selection.ClearContents
Sheets("MASA-6").Select
Range("A2:B5000").Select
Selection.ClearContents
Sheets("MASA-5").Select
Range("A2:B5000").Select
Selection.ClearContents
Sheets("MASA-4").Select
Range("A2:B5000").Select
Selection.ClearContents
Sheets("MASA-3").Select
Range("A2:B5000").Select
Selection.ClearContents
Sheets("MASA-2").Select
Range("A2:B5000").Select
Selection.ClearContents
Sheets("MASA-1").Select
Range("A2:B5000").Select
Selection.ClearContents
End Sub
LİSTELE Butonu Macro'su ( Makro nun ismi "AKTAR")
Sub AKTAR()
'
' AKTAR Macro
' Macro recorded 09.01.2007 by Zafer_Olgun
'
Dim m1, m2, m3, m4, m5, m6, m7, m8, m9, m10 As Integer
Dim n1, n2, n3, n4, n5, n6, n7, n8, n9, n10 As Integer
Dim t As Integer
'Sil
Sheets("Toplam").Select
Columns("A:B").Select
Selection.ClearContents
Range("A1").Select
ActiveCell.FormulaR1C1 = "Sayım"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Kullanıcı Adı"
Range("A2").Select
'**********************************
Sheets("MASA-1").Select
m1 = 2
While Sheets("MASA-1").Cells(m1, 1) <> ""
m1 = m1 + 1
Wend
If m1 > 2 Then
ActiveWorkbook.Names.Add "masa1", "=OFFSET('MASA-1'!R1C1," & 1 & ", 0, " & (m1 - 2) & ", 2)"
Range("masa1").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'**********************************
Sheets("MASA-2").Select
m2 = 2
While Sheets("MASA-2").Cells(m2, 1) <> ""
m2 = m2 + 1
Wend
If m2 > 2 Then
ActiveWorkbook.Names.Add "masa2", "=OFFSET('MASA-2'!R1C1," & 1 & ", 0, " & (m2 - 2) & ", 2)"
Range("masa2").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-3").Select
m3 = 2
While Sheets("MASA-3").Cells(m3, 1) <> ""
m3 = m3 + 1
Wend
If m3 > 2 Then
ActiveWorkbook.Names.Add "masa3", "=OFFSET('MASA-3'!R1C1," & 1 & ", 0, " & (m3 - 2) & ", 2)"
Range("masa3").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-4").Select
m4 = 2
While Sheets("MASA-4").Cells(m4, 1) <> ""
m4 = m4 + 1
Wend
If m4 > 2 Then
ActiveWorkbook.Names.Add "masa4", "=OFFSET('MASA-4'!R1C1," & 1 & ", 0, " & (m4 - 2) & ", 2)"
Range("masa4").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-5").Select
m5 = 2
While Sheets("MASA-5").Cells(m5, 1) <> ""
m5 = m5 + 1
Wend
If m5 > 2 Then
ActiveWorkbook.Names.Add "masa5", "=OFFSET('MASA-5'!R1C1," & 1 & ", 0, " & (m5 - 2) & ", 2)"
Range("masa5").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-6").Select
m6 = 2
While Sheets("MASA-6").Cells(m6, 1) <> ""
m6 = m6 + 1
Wend
If m6 > 2 Then
ActiveWorkbook.Names.Add "masa6", "=OFFSET('MASA-6'!R1C1," & 1 & ", 0, " & (m6 - 2) & ", 2)"
Range("masa6").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-7").Select
m7 = 2
While Sheets("MASA-7").Cells(m7, 1) <> ""
m7 = m7 + 1
Wend
If m7 > 2 Then
ActiveWorkbook.Names.Add "masa7", "=OFFSET('MASA-7'!R1C1," & 1 & ", 0, " & (m7 - 2) & ", 2)"
Range("masa7").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-8").Select
m8 = 2
While Sheets("MASA-8").Cells(m8, 1) <> ""
m8 = m8 + 1
Wend
If m8 > 2 Then
ActiveWorkbook.Names.Add "masa8", "=OFFSET('MASA-8'!R1C1," & 1 & ", 0, " & (m8 - 2) & ", 2)"
Range("masa8").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-9").Select
m9 = 2
While Sheets("MASA-9").Cells(m9, 1) <> ""
m9 = m9 + 1
Wend
If m9 > 2 Then
ActiveWorkbook.Names.Add "masa9", "=OFFSET('MASA-9'!R1C1," & 1 & ", 0, " & (m9 - 2) & ", 2)"
Range("masa9").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'***************************
Sheets("MASA-10").Select
m10 = 2
While Sheets("MASA-10").Cells(m10, 1) <> ""
m10 = m10 + 1
Wend
If m10 > 2 Then
ActiveWorkbook.Names.Add "masa10", "=OFFSET('MASA-10'!R1C1," & 1 & ", 0, " & (m10 - 2) & ", 2)"
Range("masa10").Select
Selection.Copy
Sheets("TOPLAM").Select
t = 2
While Sheets("TOPLAM").Cells(t, 1) <> ""
t = t + 1
Wend
Sheets("Toplam").Cells(t, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Sheets("TOPLAM").Select
Range("a2").Select
End Sub
Her bir Sayfaya ait Visual Basic Change Code ları
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, y As Integer
ActiveCell.Select
x = ActiveCell.Row
y = ActiveCell.Column
Sheets("MASA-1").Cells((x - 1), (y + 1)) = Application.UserName
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, y As Integer
ActiveCell.Select
x = ActiveCell.Row
y = ActiveCell.Column
Sheets("MASA-2").Cells((x - 1), (y + 1)) = Application.UserName
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, y As Integer
ActiveCell.Select
x = ActiveCell.Row
y = ActiveCell.Column
Sheets("MASA-3").Cells((x - 1), (y + 1)) = Application.UserName
End Sub
Bu şekilde MASA-10 a kadar aynı kodlar visual basic editörde "Microsoft Excel Object" bölümünde ilgili sayfa üzerine tıklandığında sağ taraftaki bölüme yazılır. Ekran görüntüsü aşağıdadır.
Bu arada aynı anda 10 kişinin sayım yapabilmesi için bu kodlar tamamlandıktan sonra çalışma kitabını paylaşımlı hale getirmek zorundayız. Bu konu hakkında daha fazla bilgi Çalışma Kitabını Paylaşıma Açmak isimli konuda bulabilirsiniz.
Şimdilik anlatacaklarım bu kadar. Bir sonraki konumuzda Sayım Kontrol bölümünde, bu konuda bahsettiğim TOPLAM sayfasında birleştirilmiş sayım listesi ve sistemden alınan listenin kontrolu ve sonuçlarının değerlendirilmesi anlatılacaktır.
Konuyla ilgili sorularınız için yorumlarınız bekliyorum.
Sevgiyle Kalın.
Zafer
Yorumlar
Yorum Gönder