Ana içeriğe atla

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. 

Visual Basic Editör ekranında "userform" ekranlarını oluşturabiliriz. Her bir userform ekranında çeşitli araçları kullanarak işlevsellik kazandırabiliriz. Her araca da uygun kod yazarak istediğimiz işi gerçekleştirebiliriz. 

VB(Visual Basic) UserForm sayfasını Hazırlama: 

Editör ekranında ilk olarak boş Userform ekranını oluşturalım. 
  • Menüden "Insert" Tabına tıkladığımıda açılan alt menüden "UserForm" u tıklayalım. Ekrana boş bir UserForm zemini gelir. Yapmak istediğimiz işleve göre bu formun boyutunu kenar ve köşelerdeki işaretlere mouse un sol tuşuna basılı tutarak değiştirebiliriz. 
    Bu ekranda Sol taraftaki sütunda kullanacağımız araçlar kutusu(Toolbox) ve bu araçların özelliklerini yönetebileceğimiz "Properties" bölümü mevcuttur. 
  • Toolbox da kullandığımız bazı araçlar şunlardır.
  • Label : Kullanıcıların veri gireceği yerleri açıklayan etiket. TextBox: Kullanıcıların verileri girdiği yer. Command Button: Girilen verilerin işlendiği tuş. 
  • Yapacağımız uygulamada Örnek olması için daha önce hazırladığım tasarım aşağıdaki ekrandaki gibidir.
      
  • Yukarıdaki görüntüde kullanıcının verilerini rahat girebilmesi yani programı rahat kullanabilmesi için index sıralamasını tek tek yapmak gerekir. İndex sıralamasını her bir aracı seçerek sol taraftaki Properties menüsünden TabIndex değerini sıraya göre belirlemek gerekir.

KAYDET Butonu Kodları:

Private Sub CommandButton1_Click()
Sheets("kayit").Select
b = 2
    While Sheets("kayit").Cells(b, 1) <> ""
        b = b + 1
    Wend
        Sheets("Kayit").Cells(b, 1) = Label4.Caption
        Sheets("Kayit").Cells(b, 2) = Label3.Caption
        Sheets("Kayit").Cells(b, 3) = TextBox1.Text
        Sheets("Kayit").Cells(b, 4) = TextBox2.Text
        Sheets("Kayit").Cells(b, 5) = TextBox3.Text
        Sheets("Kayit").Cells(b, 6) = TextBox4.Text
        Sheets("Kayit").Cells(b, 7) = TextBox5.Text
        Sheets("Kayit").Cells(b, 8) = TextBox6.Text
        Sheets("Kayit").Cells(b, 9) = TextBox7.Text
        Sheets("Kayit").Cells(b, 10) = TextBox8.Text
        Sheets("Kayit").Cells(b, 11) = TextBox9.Text
Sheets("form").Select
        Sheets("form").Cells(4, 9) = Label4.Caption
        Sheets("form").Cells(4, 3) = Label3.Caption
        Sheets("form").Cells(6, 3) = TextBox1.Text
        Sheets("form").Cells(7, 3) = TextBox2.Text
        Sheets("form").Cells(8, 3) = TextBox3.Text
        Sheets("form").Cells(11, 3) = TextBox4.Text
        Sheets("form").Cells(12, 3) = TextBox5.Text
        Sheets("form").Cells(13, 3) = TextBox6.Text
        Sheets("form").Cells(14, 3) = TextBox7.Text
        Sheets("form").Cells(16, 3) = TextBox8.Text
        Sheets("form").Cells(18, 3) = TextBox9.Text
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"

Sheets("kayit").Select
c = 2
    While Sheets("kayit").Cells(c, 1) <> ""
        c = c + 1
    Wend
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    TextBox5.Text = ""
    TextBox6.Text = ""
    TextBox7.Text = ""
    TextBox8.Text = ""
    TextBox9.Text = ""
    Label4.Caption = c - 1
End Sub

ÇIKIŞ Butonu Kodları:

Private Sub CommandButton2_Click()
Unload Me
End Sub

Tekrar Form Bas Butonu Kodları:

Private Sub CommandButton3_Click()
Dim f, g As Integer
Dim y As Integer

Sheets("kayit").Select

If TextBox10.Text = "" Then
        MS = MsgBox("FORM NUMARASI GİRİNİZ", vbOKOnly)
        GoTo son
End If

y = 2
    While Sheets("kayit").Cells(y, 1) <> ""
        y = y + 1
    Wend
g = TextBox10.Text
f = TextBox10.Text + 1
If (g > y - 1) Or (g = y - 1) Then
    MS = MsgBox("Girdiğiniz rakam yanlış", vbOKOnly)
    GoTo son
Else
    Label4.Caption = f
    Label3.Caption = Now()
    TextBox1.Text = Sheets("Kayit").Cells(f, 3)
    TextBox2.Text = Sheets("Kayit").Cells(f, 4)
    TextBox3.Text = Sheets("Kayit").Cells(f, 5)
    TextBox4.Text = Sheets("Kayit").Cells(f, 6)
    TextBox5.Text = Sheets("Kayit").Cells(f, 7)
    TextBox6.Text = Sheets("Kayit").Cells(f, 8)
    TextBox7.Text = Sheets("Kayit").Cells(f, 9)
    TextBox8.Text = Sheets("Kayit").Cells(f, 10)
    TextBox9.Text = Sheets("Kayit").Cells(f, 11)
Sheets("form").Select
        Sheets("form").Cells(4, 9) = Label4.Caption
        Sheets("form").Cells(4, 3) = Label3.Caption
        Sheets("form").Cells(6, 3) = TextBox1.Text
        Sheets("form").Cells(7, 3) = TextBox2.Text
        Sheets("form").Cells(8, 3) = TextBox3.Text
        Sheets("form").Cells(11, 3) = TextBox4.Text
        Sheets("form").Cells(12, 3) = TextBox5.Text
        Sheets("form").Cells(13, 3) = TextBox6.Text
        Sheets("form").Cells(14, 3) = TextBox7.Text
        Sheets("form").Cells(16, 3) = TextBox8.Text
        Sheets("form").Cells(18, 3) = TextBox9.Text
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
Sheets("kayit").Select
c = 2
    While Sheets("kayit").Cells(c, 1) <> ""
        c = c + 1
    Wend
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    TextBox5.Text = ""
    TextBox6.Text = ""
    TextBox7.Text = ""
    TextBox8.Text = ""
    TextBox9.Text = ""
    Label4.Caption = c - 1
End If
son:
End Sub

Ana ekran açılırken işleyen kodlar:

Private Sub UserForm_Initialize()
Label3.Caption = Now()
Sheets("kayit").Select
a = 2
    While Sheets("kayit").Cells(a, 1) <> ""
        a = a + 1
    Wend
Label4.Caption = a - 1
End Sub

Sayfa Üzerinde Hazırlıklar:
Bu kodları çalıştırmadan önce Sayfalarda bir takım hazırlıklar yapılması gereklidir. 
Bu program için Excel'de 3 sayfa kullanılacaktır. 
1.sayfa  "Ana" : Programın otomatik başlamadığı zaman ilgili resme tıklayarak çalıştırıldığı sayfa Burada ilgili resme auto_open makrosu atanmıştır. Atama işlemi için ilgili resme mouse un sağ tuşu ile tıklanıp gelen ekrandan Assign Macro ile auto_open makrosu (daha önceden kaydedip kapattığımız) atanır. Daha önceki yazılarımızda anlatmıştım. 

auto_open makrosunun kodları :

Sub auto_open()
'
' auto_open Macro
'
    Load UserForm1
    UserForm1.Show
    
End Sub

 2.sayfa "Form" : Bu sayfada kullanılan yazıcı ve kağıt boyutuna göre değişiklik gösterebilir. Ben A5 kağıt boyutuna göre yazıcıda yatay şekilde bastırılacak bir form tasarladım. Birkaç denemeden sonra sizde müşteriye de verilecek şekilde iki bölümlü form tasarlayabilirsiniz. 


3. Sayfa "Kayıt" : Ana programda gerekli bilgiler doldurulduktan sonra KAYDET tuşuna tıkladığınızda program yukarıdaki formu yazıcıdan çıktı verirken aynı anda çalışma kitabında kayıt sayfasına ilgili sıra numaralı satıra girilen tüm bilgileri yerlerine kaydeder. Böylelikle bir şekilde müşteri ve arıza veritabanı oluşturmuş oluruz. 

Bu anlatılanlar ışığında oldukça sade fakat kullanışlı ve sıfır maliyetli bir CRM programı yapmış oldunuz. Konuyla ilgili sorularınız için zafer.olgun@gmail.com adresine mesaj gönderebilir ya da bu konuya yorum olarak bildirimde bulunabilirsiniz.

Esenlikler 
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 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.