Ana içeriğe atla

Excel ile DEPO SAYIM Kontrol Programi Yapmak

Merhaba,

Programımızın en önemli kısmına gelmiş bulunmaktayız.

Fiziki sayım konumuzda sayım işlemlerini 4 aşamaya ayırmıştık ve ilk iki adımını anlatmıştık.


Sayım İşlemi  3.Adım

Elimizde iki adet kontrol edilmesi gereken iki liste var. Bunları birbiriyle karşılaştırıp karşılıklı olarak yani iki yönlü olarak iki listede VAR veya YOK şeklinde sonuç üretecek bir program yazacağız. Daha sonra bu programımız vasıtasıyla elde ettiğimiz sonucu liste haline getireceğiz.

İlk olarak çalışma kitabımızdaki sayfa yapısından başlayalım. Örneğimiz üzerinden gideceğiz. 

Çalışma kitabımızda 3 sayfa oluşturuyoruz. 
  1. "Kontrol"  
  2. "Sayım Kontrol Rapor" 
  3. "IBS Kontrol Rapor"  
Kontrol sayfasında yer alan"TEMİZLE" butonu eski verilerin tümünü siler.  Kontrol Sayfasında "B" Kolonuna fiziki olarak sayılan listeyi, "C" Kolonuna Sistemden alınan listeyi kendimiz Copy & Paste yöntemiyle ekliyoruz. "KONTROL" butonu iki listenin karşılıklı olarak kontrol edilmesini sağlar. Sonuçları A kolonuna Sayım listesindeki veriyi Sistem(IFS Listesi) listesinde VAR ya da YOK şeklinde yazar. Aynı şekilde programımız "D" kolonuna da Sistem(IFS) listesindeki veriyi Sayım Listesinde VAR ya da YOK şeklinde yazıp VAR sa karşı listede hangi satırda olduğunu yazar. ürün listeleri kısa olduğunda bu iş gereksiz görünse de 1000 -10000 adet ürün için bu program hayat kurtarır...
Gelelim kodlarımıza:

TEMİZLE Butonu Kodları:

Sub Temizle()
'
' Temizle Macro
' Macro recorded 16.01.2007 by Zafer_Olgun
'

'
    Range("A2:D5000").Select
    Selection.ClearContents
    Range("B2").Select
End Sub

KONROL Butonu Kodları:(Butona "auto_open" Macro atanmıştır)

Sub auto_open()
'
' auto_open Makro
' Makro zafer tarafından 18.10.2006 tarihinde kaydedildi.
'
Load UserForm2
UserForm2.Show
'
End Sub

Görüldüğü üzere Visual Basic UserForm2 çalıştırılıyor. O halde Öncelikle userform2 görüntüsüne bakalım. Çünkü burada iki tuş bulunmaktadır. Ve kendi ön sonuçlarını üretmektedir. 

Yukarıdaki userform2 ekranında yer alan araçlarla ilgili tüm kodlar: 

Private Sub CommandButton1_Click()

'Sayım Kontrol
Dim t As Integer
Dim say, syok, svar As Integer

'*******************************
' Kayıt Yapılan Cihazların Sayısı
'*******************************
    say = 1
    While Sheets("Kontrol").Cells(say, 2) <> ""
        say = say + 1
    Wend
    Label3.Caption = say - 2

' Sayımın'in kontrolu
    syok = 0
    svar = 0
    For t = 2 To say - 1
        b = Sheets("kontrol").Cells(t, 2)
        Set fc = Worksheets("Kontrol").Columns("C").Find(what:=b)
        If fc Is Nothing Then
                Sheets("kontrol").Cells(t, 1) = "YOK"
                syok = syok + 1
        Else
            Sheets("kontrol").Cells(t, 1) = "Var - " & fc.Row
            svar = svar + 1
        End If
    Next
    Label9.Caption = syok
    Label5.Caption = svar
    CommandButton3.Visible = True
    
End Sub

Private Sub CommandButton2_Click()
Dim y, z As Integer
Dim k, l As Integer

'IBS Kontrol
'    Columns("C:C").Select
'    Selection.Sort Key1:=Range("C2"), Order1:=xlDescending, Header:=xlGuess, _
'    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
'    DataOption1:=xlSortNormal
    
'    Range("C2").Select


'*******************************
' IBS deki Cihazların Sayısı
'*******************************
y = 1
    While Sheets("Kontrol").Cells(y, 3) <> ""
        y = y + 1
    Wend
Label11.Caption = y - 2

'*******************************
' Cihazların Kontrolu
'*******************************
' IBS'in kontrolu
    k = 0
    l = 0
    For z = 2 To y - 1
        b = Sheets("kontrol").Cells(z, 3)
        Set fc = Worksheets("Kontrol").Columns("B").Find(what:=b)
        If fc Is Nothing Then
            Sheets("kontrol").Cells(z, 4) = "YOK"
            k = k + 1
        Else
            Sheets("kontrol").Cells(z, 4) = "Var - " & fc.Row
            l = l + 1
        End If
    Next
Label17.Caption = k
Label13.Caption = l
CommandButton4.Visible = True
End Sub

Private Sub CommandButton3_Click()
Dim a1, a2, a3, a4 As Integer

Sheets("Sayım Kontrol Rapor").Select
    
    Range("A8:B500").Select
    Selection.ClearContents
    Range("A8").Select
    
Range("B3") = Label3.Caption
Range("B4") = Label5.Caption
Range("B5") = Label9.Caption

Sheets("Kontrol").Select

'*******************************
' Sayımda Olan IBS'de Olmayan Cihazlar
'*******************************
    a1 = 1
    While Sheets("Kontrol").Cells(a1, 2) <> ""
        a1 = a1 + 1
    Wend
    For a2 = 2 To a1
        If Sheets("kontrol").Cells(a2, 1) = "YOK" Then
            Sheets("kontrol").Cells(a2, 2).Select
            '*****
            Selection.Copy
            Sheets("Sayım Kontrol Rapor").Select
        a3 = 8
        While Sheets("Sayım Kontrol Rapor").Cells(a3, 1) <> ""
            a3 = a3 + 1
        Wend
        Sheets("Sayım Kontrol Rapor").Cells(a3, 1).Select
        ActiveSheet.Paste
        Sheets("Kontrol").Select
        End If
    Next
Application.CutCopyMode = False
CommandButton3.Visible = False

End Sub

Private Sub CommandButton4_Click()
Dim b1, b2, b3, b4 As Integer

Sheets("IBS Kontrol Rapor").Select
    
    Range("A8:B500").Select
    Selection.ClearContents
    Range("A8").Select
    
Range("B3") = Label11.Caption
Range("B4") = Label13.Caption
Range("B5") = Label17.Caption

Sheets("Kontrol").Select


b1 = 1
    While Sheets("Kontrol").Cells(b1, 3) <> ""
        b1 = b1 + 1
    Wend
    For b2 = 2 To b1
        If Sheets("kontrol").Cells(b2, 4) = "YOK" Then
            Sheets("kontrol").Cells(b2, 3).Select
            '*****
            Selection.Copy
            Sheets("IBS Kontrol Rapor").Select
        b3 = 8
        While Sheets("IBS Kontrol Rapor").Cells(b3, 1) <> ""
            b3 = b3 + 1
        Wend
        Sheets("IBS Kontrol Rapor").Cells(b3, 1).Select
        ActiveSheet.Paste
        Sheets("Kontrol").Select
        End If
    Next


Application.CutCopyMode = False
CommandButton4.Visible = False
End Sub

Private Sub Frame2_Click()

End Sub

Private Sub Label1_Click()

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
CommandButton3.Visible = False
CommandButton4.Visible = False
End Sub

Yukarıdaki kodları doğru şekilde ilgili araçlara yerleştirdikten sonra kaydedin  ve tüm akranları kapatın. Çalışma kitabına yeni listeleri ekleyin ve ilgili butonlara basın. 

Rapor butonlarına bastığınızda sayımla ilgili hatalı sonuçlar ilgili rapor sayfalarına otomatik yazdıracaktır. 

Sayım İşlemi 4. Adım 

Çalışma kitabımızda, Rapor sayfalarına programımız sayım kontrol sonucu hataları yazar.  Size düşen bu rapor sayfalarının yazıcıdan çıktısını alıp sayıp sorumlularına vermeniz. Sorumlulardan verdiğiniz raporlardaki cihazları talep etmeniz. Gelen cihazları sistemden düşmeniz, gelmeyenler hakkında ilgili kayıp çalıntı kurallarını uygulamanız.

Saygılar,
Zafer Olgun  



Yorumlar

Bu blogdaki popüler yayınlar

Excel İle Depo Sayim Programi Yapmak

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.

Excel ile Teknik Servis Arıza Kayıt Formu - Visual Basic

Arkadaşlar Merhaba, Bu bölümde Excel'de Visual Basic Editör ortamında Teknik Servis Arıza Kayıt Formunun hazırlanmasını göreceğiz. Hazırladığımız formu bir önceki derste oluşturduğumuz macro ya ekleyeceğiz.  İlk olara Developer Tabında "Visual Basic" Butonuna basarak Editörü açabiliriz. Editör ortamı aşağıdaki ekranda görüldüğü gibidir.