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.
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.
- "Kontrol"
- "Sayım Kontrol Rapor"
- "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
Yorum Gönder