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.
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
Yorum Gönder