Textboxlardan Veri Hesaplanıyor Ama Boş Olduğunda Hata Alıyorum

27/08/2021, 13:18

doriangray1907

Merhaba;

Sorunum şu; textboxlardan dört işlem yapıyorum ama bazı durumlarda bu alanların boş kalması gerekiyor. Boş olduğunda da hata alıyorum. Boş olsa da hesaplama yapmadan devam etmesini istiyorum. Kaydet buton kodları aşağıdaki gibidir.
Yardımlarınızı rica ederim.



Private Sub btnKaydet_Click()

If txtStokAdi = "" Or cbTedarikci = "" Or cbBirim = "" Or txtGirisAdet = "" Then

MsgBox "Yeni stok kartı için istenilen tüm bilgilerin yazılması gerekmektedir."
Exit Sub

End If

stokDurumSS = Sheets("Stok_Durum").Range("A10000").End(xlUp).Row + 1
stokHareketSS = Sheets("Stok_Hareket_Durumu").Range("A100000").End(xlUp).Row + 1

Sheets("Stok_Durum").Range("A" & stokDurumSS) = txtID.Text
duzenlistok = Replace(txtStokAdi, "i", "İ")
duzenlistok = Replace(duzenlistok, "ı", "I")
Sheets("Stok_Durum").Range("B" & stokDurumSS) = UCase(duzenlistok)
Sheets("Stok_Durum").Range("C" & stokDurumSS) = cbTedarikci.Text
Sheets("Stok_Durum").Range("D" & stokDurumSS) = cbBirim.Text
Sheets("Stok_Durum").Range("E" & stokDurumSS) = CDbl(FormatNumber(txtGirisAdet.Value, 2))
Sheets("Stok_Durum").Range("G" & stokDurumSS) = CDbl(FormatNumber(txtGirisAdet.Value, 2))
Sheets("Stok_Durum").Range("H" & stokDurumSS) = Now
Sheets("Stok_Durum").Range("I" & stokDurumSS) = cmb_Kategori.Text
Sheets("Stok_Durum").Range("J" & stokDurumSS) = txt_Ebat.Text
Sheets("Stok_Durum").Range("L" & stokDurumSS) = txt_Urun_Kodu.Text
Sheets("Stok_Durum").Range("M" & stokDurumSS) = txt_Koli_Adet.Text
Sheets("Stok_Durum").Range("N" & stokDurumSS) = txt_Koli_Ebat.Text
Sheets("Stok_Durum").Range("O" & stokDurumSS) = Sheets("Stok_Durum").Range("E" & stokDurumSS) * Sheets("Stok_Durum").Range("Q" & stokDurumSS)
Sheets("Stok_Durum").Range("P" & stokDurumSS) = (txt_Boy.Value * Txt_En.Value) / 1000000
Sheets("Stok_Durum").Range("Q" & stokDurumSS) = txt_Tabaka_Kg.Text
Sheets("Stok_Durum").Range("R" & stokDurumSS) = txt_Tabaka_Kg.Value / Sheets("Stok_Durum").Range("P" & stokDurumSS)
Sheets("Stok_Durum").Range("S" & stokDurumSS) = txt_Boy.Text
Sheets("Stok_Durum").Range("T" & stokDurumSS) = Txt_En.Text
Sheets("Stok_Durum").Range("U" & stokDurumSS) = txt_Metrekare_Gram.Text

Sheets("Stok_Hareket_Durumu").Range("A" & stokHareketSS) = "SHID-" & Sheets("Tanimlamalar").Range("D2")
Sheets("Stok_Hareket_Durumu").Range("B" & stokHareketSS) = txtID.Text
Sheets("Stok_Hareket_Durumu").Range("C" & stokHareketSS) = UCase(duzenlistok)
Sheets("Stok_Hareket_Durumu").Range("D" & stokHareketSS) = cbBirim.Text
Sheets("Stok_Hareket_Durumu").Range("E" & stokHareketSS) = "Giriş"
Sheets("Stok_Hareket_Durumu").Range("F" & stokHareketSS) = CDbl(FormatNumber(txtGirisAdet.Value, 2))
Sheets("Stok_Hareket_Durumu").Range("G" & stokHareketSS) = 0
Sheets("Stok_Hareket_Durumu").Range("H" & stokHareketSS) = CDbl(FormatNumber(txtGirisAdet.Value, 2))
Sheets("Stok_Hareket_Durumu").Range("I" & stokHareketSS) = "Yeni Stok Kaydı"
Sheets("Stok_Hareket_Durumu").Range("J" & stokHareketSS) = Now
Sheets("Stok_Durum").Range("I" & stokDurumSS) = cmb_Kategori.Text
Sheets("Stok_Durum").Range("J" & stokDurumSS) = txt_Ebat.Text
Sheets("Stok_Durum").Range("L" & stokDurumSS) = txt_Urun_Kodu.Text
Sheets("Stok_Durum").Range("M" & stokDurumSS) = txt_Koli_Adet.Text
Sheets("Stok_Durum").Range("N" & stokDurumSS) = txt_Koli_Ebat.Text
Sheets("Stok_Durum").Range("O" & stokDurumSS) = Sheets("Stok_Durum").Range("E" & stokDurumSS) * Sheets("Stok_Durum").Range("Q" & stokDurumSS)
Sheets("Stok_Durum").Range("P" & stokDurumSS) = (txt_Boy.Value * Txt_En.Value) / 1000000
Sheets("Stok_Durum").Range("Q" & stokDurumSS) = txt_Tabaka_Kg.Text
Sheets("Stok_Durum").Range("R" & stokDurumSS) = Sheets("Stok_Durum").Range("Q" & stokDurumSS) / Sheets("Stok_Durum").Range("P" & stokDurumSS)
Sheets("Stok_Durum").Range("S" & stokDurumSS) = txt_Boy.Text
Sheets("Stok_Durum").Range("T" & stokDurumSS) = Txt_En.Text
Sheets("Stok_Durum").Range("U" & stokDurumSS) = txt_Metrekare_Gram.Text
Sheets("Tanimlamalar").Range("A2") = Sheets("Tanimlamalar").Range("A2") + 1
Sheets("Tanimlamalar").Range("D2") = Sheets("Tanimlamalar").Range("D2") + 1

MsgBox "Yeni stok kartı oluşturuldu."

Unload Me
frmStokKayit.Show

End Sub
27/08/2021, 16:04

berduş

1 - benzeri bir yapı işinize yarayabilir
Me.TextBox3 = IIf(Len(Me.TextBox1 & "") = 0, 0, Me.TextBox1) + IIf(Len(Me.TextBox2 & "") = 0, 0, Me.TextBox2) * 2
2 - metin kutularının başlangıç değerleri 0 yapılabilir
3 - kod bloğunuzun başına on error resume next kod satırı eklenebilir
31/08/2021, 10:31

doriangray1907

teşekkürler hocam işime yaradı
31/08/2021, 12:59

berduş

rica ederim
iyi çalışmalar