1. Adım: Kullanıcı Arayüzü Oluşturma
Excel'de Geliştirici sekmesinden VBA penceresini açın ve yeni bir UserForm oluşturun. Formunuza şu kontrolleri ekleyin:
Label1: "Ürün Kodu"
TextBox1: Kullanıcıdan ürün kodu almak için
Label2: "Ürün Adı"
TextBox2: Kullanıcıdan ürün adı almak için
Label3: "Miktar"
TextBox3: Kullanıcıdan miktar almak için
Label4: "İşlem Türü"
ComboBox1: "Ekle", "Güncelle", "Sil" seçeneklerini içeren işlem türü için
CommandButton1: "Kaydet" butonu
2. Adım: Kod Ekleme Formunuza çift tıklayarak kod penceresini açın ve aşağıdaki kodları ekleyin:
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("StokVerileri") 'Verilerin kaydedileceği sayfa adı
' Yeni veri eklemeden önce mevcut verileri kontrol edin
If ws.Cells(1, 1).Value = "" Then
' Başlık satırı ekleyin
ws.Cells(1, 1).Value = "Ürün Kodu"
ws.Cells(1, 2).Value = "Ürün Adı"
ws.Cells(1, 3).Value = "Miktar"
ws.Cells(1, 4).Value = "Tarih"
ws.Cells(1, 5).Value = "İşlem Türü"
End If
Dim emptyRow As Long
emptyRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 'Boş satırın bulunması
Dim urunKodu As String
Dim urunAdi As String
Dim miktar As Double
Dim islemTuru As String
urunKodu = TextBox1.Value
urunAdi = TextBox2.Value
miktar = TextBox3.Value
islemTuru = ComboBox1.Value
Select Case islemTuru
Case "Ekle"
' Yeni ürün ekleme
ws.Cells(emptyRow, 1).Value = urunKodu
ws.Cells(emptyRow, 2).Value = urunAdi
ws.Cells(emptyRow, 3).Value = miktar
ws.Cells(emptyRow, 4).Value = Now
ws.Cells(emptyRow, 5).Value = islemTuru
Case "Güncelle"
' Ürün güncelleme
Dim foundRow As Long
foundRow = Application.Match(urunKodu, ws.Range("A:A"), 0)
If Not IsError(foundRow) Then
ws.Cells(foundRow, 2).Value = urunAdi
ws.Cells(foundRow, 3).Value = miktar
ws.Cells(foundRow, 4).Value = Now
ws.Cells(foundRow, 5).Value = islemTuru
Else
MsgBox "Ürün bulunamadı!", vbExclamation
End If
Case "Sil"
' Ürün silme
Dim deleteRow As Long
deleteRow = Application.Match(urunKodu, ws.Range("A:A"), 0)
If Not IsError(deleteRow) Then
ws.Rows(deleteRow).Delete
Else
MsgBox "Ürün bulunamadı!", vbExclamation
End If
End Select
' Form alanlarını temizleme
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
ComboBox1.Value = ""
End Sub
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Ekle"
ComboBox1.AddItem "Güncelle"
ComboBox1.AddItem "Sil"
End Sub
3. Adım: Tablo Oluşturma
Excel'de StokVerileri adında bir sayfa oluşturun ve şu başlıkları ekleyin:
A1: Ürün Kodu
B1: Ürün Adı
C1: Miktar
D1: Tarih
E1: İşlem Türü
4. Adım: Makroyu Otomatik Başlatma
Excel dosyasını her açtığınızda UserForm'un otomatik olarak açılmasını sağlamak için ThisWorkbook nesnesine aşağıdaki kodu ekleyin:
Private Sub Workbook_Open()
UserForm1.Show
End Sub
