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 Teknik Servis Arıza Kayıt Formu Programı Nasıl Yapılır?

Merhaba, İlk uygulamamız olan Teknik Servis Arıza Kayıt Formu Programını adım adım gerçekleştireceğiz.  Bu programın kendisini de paylaşacağım. Basit bir CRM programı tasarlayacağız. Bunun için yüksek miktarlarda ücret ödeyerek yazılım satın almanız gerek olmayacaktır.  Sağlayacağı faydalar: Küçük ölçekli basit hizmet işi ya da teknik servis işi ile uğraşan bir firmamız var. Bu firma her türlü tamirci olabilir. Gelen müşteri arızalı cihazını onarılmak üzere bıraktığında karşılığında bir belge ister. Bu belge ile kendini güvende hisseder. Bu belge aynı zamanda gerek tamirci gerekse müşteri arasındaki anlaşmadır. Şikayet, arıza, cihazın durumu iletişim bilgileri gibi bilgilerle verilecek hizmetin en iyi şekilde yapılması sağlanır. Ayrıca müşteri aynı cihazı daha önce getirmiş olabilir ve ya daha sonra da aynı ya da farklı bir arıza nedeniyle getirecek olabilir. Tüm bunların takibi ve kontrolü firma için müşterinin gözünde oldukça olumlu bir izlenim bırakır. Tüm bu faydalar...