Çö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
Altın Üyelik Bitiş Tarihi
12-12-2023
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?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,540
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şu satırın ActiveWorkbook.Save üstüne aşağıdaki satırı ekleyip deneyiniz.

C++:
If ifcase = False Then Exit Sub
 
Katılım
10 Ocak 2022
Mesajlar
50
Excel Vers. ve Dili
2019 vrs / ing-tr
Altın Üyelik Bitiş Tarihi
12-12-2023
Şu satırın ActiveWorkbook.Save üstüne aşağıdaki satırı ekleyip deneyiniz.

C++:
If ifcase = False Then Exit Sub
Her if in sonunda bulunan ifcade=false nin devamına then exit sub desem ilgili if yanlış olduğunda Şub sonlanır mi peki hocam.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,540
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 
Katılım
10 Ocak 2022
Mesajlar
50
Excel Vers. ve Dili
2019 vrs / ing-tr
Altın Üyelik Bitiş Tarihi
12-12-2023
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.
 
Katılım
10 Ocak 2022
Mesajlar
50
Excel Vers. ve Dili
2019 vrs / ing-tr
Altın Üyelik Bitiş Tarihi
12-12-2023
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ı.
 
Üst