• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Çözüldü userform if de hata durumunda işlemi durdurma hk.

Katılım
10 Ocak 2022
Mesajlar
50
Excel Vers. ve Dili
2019 vrs / ing-tr
Kod:
Private Sub kaydet_Click()

Dim GorevEmri As String
Dim ifcase As Boolean

GorevEmri = CBADI.Value

iResult = MsgBox(" Sn. " & GorevEmri & " " & vbNewLine & " Görev Talebiniz Başlatılsın mı?!", vbYesNo + vbQuestion, "Görev Emri")

ifcase = True

   If Len(TBACIKLAMA.Value) < 5 Then
   MsgBox "Görev Açıklama bilgiler eksiktir.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBSICIL.Value) <= 3 Then
   MsgBox "Sicil bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(CBADI.Value) <= 5 Then
   MsgBox "AD SOYAD bilgisi eksik bırkılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBAVANS.Value) < 1 Then
   MsgBox "AVANS bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBGUN.Value) < 1 Then
   MsgBox "GÜN SÜRESİ bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBTARIH.Value) <= 1 Then
   MsgBox "GÖREV TARİHİ bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBONAYCI.Value) < 4 Then
   MsgBox "ONAYCI bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(CBBOLGE.Value) < 5 Then
   MsgBox "GÖREV BÖLGESİNİ Seçiniz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(CBGOREVYERI.Value) <= 5 Then
   MsgBox "GÖREV YERİNİ Seçiniz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBPYP.Value) <= 5 Then
   MsgBox "TA'lı Kompozit türünden PYP Giriniz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBMASRAFYERI.Value) <= 5 Then
   MsgBox "MASRAF YERİ bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBANAHESAP.Value) < 6 Then
   MsgBox "ANA HESAP bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(CBEK2A.Value) < 3 Then
   MsgBox "EK 2A bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(CBTUR.Value) < 3 Then
   MsgBox "Denetim Türünü Belirtiniz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBFIRMA.Value) < 3 Then
   MsgBox "Göreve gidilecek firmayı giriniz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(CBULASIM.Value) < 3 Then
   MsgBox "Ulaşım aracını belirtiniz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBKONAKLAMA.Value) < 1 Then
   MsgBox "OTEL BİLGİSİ bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBGSM.Value) <= 5 Then
   MsgBox "CEP TELEFONU bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

   ElseIf Len(TBMAIL.Value) < 5 Then
   MsgBox "E MAİL bilgisi eksik bırakılamaz.", vbCritical, "Hata"
   ifcase = False

'   ElseIf Len(Range("Q12:Q12").Value) < 5 Then
'   MsgBox "Hes KODU bilgisi eksik bırakılamaz.", vbCritical, "Hata"
'   ifcase = False

'   ElseIf Len(Range("Q4:Q4").Value) < 1 Then
'   MsgBox "Uçuş Bilgisi bilgisi eksik bırakılamaz.", vbCritical, "Hata"
'   ifcase = False
'
'   ElseIf Len(Range("Q5:Q5").Value) < 1 Then
'   MsgBox "ADRES bilgisi boş bırakılamaz. Bu alan kayıt altına alınmamaktadır.", vbCritical, "Hata"
'   ifcase = False

        End If

ActiveWorkbook.Save


Sheets("database").Rows(2).Insert

Sheets("database").Range("A2").Value = CDbl(Sheets("database").Range("A3").Value + 1)
Sheets("database").Range("B2").Value = CBBOLGE.Value
Sheets("database").Range("C2").Value = TBTARIH.Value
Sheets("database").Range("D2").Value = CBADI.Value
Sheets("database").Range("E2").Value = CDbl(TBSICIL.Value)
Sheets("database").Range("F2").Value = CDbl(TBONAYCI.Value)
Sheets("database").Range("G2").Value = CBTUR.Value
Sheets("database").Range("H2").Value = DateValue(TBGTARIHI.Value)
Sheets("database").Range("I2").Value = CDbl(TBGUN.Value)
Sheets("database").Range("J2").Value = CBGOREVYERI.Value
Sheets("database").Range("K2").Value = TBACIKLAMA.Value
Sheets("database").Range("L2").Value = TBFIRMA.Value
Sheets("database").Range("M2").Value = CBULASIM.Value
'Sheets("database").Range("N2").Value=TBGIDIS&TBDONUS.Value
Sheets("database").Range("O2").Value = TBKONAKLAMA.Value
Sheets("database").Range("P2").Value = CDbl(TBAVANS.Value)
Sheets("database").Range("Q2").Value = CBEK2A.Value
Sheets("database").Range("R2").Value = TBMASRAFYERI.Value
Sheets("database").Range("S2").Value = TBPYP.Value
Sheets("database").Range("T2").Value = CDbl(TBANAHESAP.Value)
'Sheets("database").Range("U3").Value = .Value
'Sheets("database").Range("V3").Value = .Value
'Sheets("database").Range("W3").Value = .Value
Sheets("database").Range("X2").Value = TBGSM.Value
Sheets("database").Range("Y2").Value = TBMAIL.Value
'Sheets("database").Range("Z3").Value = .Value
'Sheets("database").Range("AA3").Value = .Value
'Sheets("database").Range("AB3").Value = .Value


MsgBox "KAYDEDİLDİ"

   UserForm2.Listele
   UserForm2.Listele_2
  
End Sub

Merhaba Arkadaşlar;


Yukarıdaki kod dizinine sahip bir butonum bulunuyor. userform içindeki texsbox lardan veriyi alıp excell e kayıt yapıyor fakat sorunum surda hata denetlemesini sonlandıramıyorum. İF değerine uymayan bir değer varsa hata denetlemesi işlemi durdursun hata yok ise Sheets("database").Rows(2).Insert komutundan itibaren devam etsin istiyorum denetlemeyi doğru olarak yapıyor ama hata verdiğinde durmuyor. hatayı nerde yaptım sizce yardımcı olurmusunuz?
 
Şu satırın ActiveWorkbook.Save üstüne aşağıdaki satırı ekleyip deneyiniz.

C++:
If ifcase = False Then Exit Sub
 
Aslında ifcase değişkenini kullanmanıza gerek yok.

İlk sorgu bloğu için örneklersek normalde aşağıdaki gibi yazabilirsiniz. diğer sorgu bloklarınıda aynı şekilde düzeltip deneyebilirsiniz.

C++:
If Len(TBACIKLAMA.Value) < 5 Then
     MsgBox "Görev Açıklama bilgiler eksiktir.", vbCritical, "Hata"
     Exit Sub
End If
 
Aslında ifcase değişkenini kullanmanıza gerek yok.

İlk sorgu bloğu için örneklersek normalde aşağıdaki gibi yazabilirsiniz. diğer sorgu bloklarınıda aynı şekilde düzeltip deneyebilirsiniz.

C++:
If Len(TBACIKLAMA.Value) < 5 Then
     MsgBox "Görev Açıklama bilgiler eksiktir.", vbCritical, "Hata"
     Exit Sub
End If

Yarın ofiste uygulayıp dönüş yapacağım teşekkür ederim.
 
Aslında ifcase değişkenini kullanmanıza gerek yok.

İlk sorgu bloğu için örneklersek normalde aşağıdaki gibi yazabilirsiniz. diğer sorgu bloklarınıda aynı şekilde düzeltip deneyebilirsiniz.

C++:
If Len(TBACIKLAMA.Value) < 5 Then
     MsgBox "Görev Açıklama bilgiler eksiktir.", vbCritical, "Hata"
     Exit Sub
End If

Teşekkür ederim hocam çalıştı sorunsuz mail döngüsüne de bağlandı.
 
Geri
Üst