Textboxların boş olup olmadığını döngü ile kontrol e

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selam arkadaşlar,

Aşağıdaki kodda form üzerinde bulunan textboxların boş olup olmadığını kontrol etmek için bir döngü oluşturdum. Benim yapmak istediğim. Bu textboxtlardan hangisi boş bırakılırsa uyarı verdikten sonra ona SetFocus uygulamak. Bu işlem tüm textboxlar dolana kadar devam etsin. Eğer hepsi dolu koşulu gerçekleşirse kayıt işlemi gerçekleşsin.

Private Sub CommandButton1_Click()
For a = 1 To 4
If Controls("TextBox" & a).Value = "" Then
MsgBox ("Kayıt işlemi için gerekli tüm bölümlere veri girmelisiniz." _
& Chr(10) & "Lütfen boş bıraktığınız bölümleri doldurunuz."), vbExclamation, "DİKKAT !"
Controls("TextBox" & a).SetFocus
.....
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Kod:
Controls("TextBox" & a).SetFocus
satirindan sonra bir

Kod:
Exit For
sorunu çözer gibime geliyor.
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Sole Birşeyde ben yazsam olabilir mi?

sn.ALPEN, in cevabına extra

Private Sub CommandButton1_Click()
if textbox1.value="" or Textbox2.value="" or Textbox3.value="" or Textbox4.value="" Then
MsgBox("Boş ALan bıraktınız")
End if
Exit Sub
Textbox1.value=""
Textbox2.value=""
Textbox3.value=""
Textbox4.value=""

End sub

Umarım Katkım Olmuştur.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sn. ALPEN,

Dediğiniz şekilde denedim fakat kayıt işlemini yapmadı bu sefer kodlarım aşağıdaki gibidir.

Private Sub CommandButton1_Click()
For a = 1 To 4
If Controls("TextBox" & a).Value = "" Then
MsgBox ("Kayıt işlemi için gerekli tüm bölümlere veri girmelisiniz." _
& Chr(10) & "Lütfen boş bıraktığınız bölümleri doldurunuz."), vbExclamation, "DİKKAT !"
Controls("TextBox" & a).SetFocus
Exit For

Else

Sheets("FATURA").Select
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select

Loop

If Range("A2").Value = "" Then
Range("A2").Value = 1
Range("A2").Select

Else

ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1

End If

ActiveCell.Offset(0, 1) = CDate(TextBox1.Text)
ActiveCell.Offset(0, 2) = TextBox2.Text
ActiveCell.Offset(0, 3) = TextBox3.Text
ActiveCell.Offset(0, 4) = TextBox4.Text

Range("B2").Select
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox1.SetFocus

Call Userform_initialize
ActiveWorkbook.Save
End If
Next
End Sub
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Merhaba,
[vb:1:bfcfcc6089]Private Sub CommandButton1_Click()
For a = 1 To 4
If Controls("TextBox" & a).Value = "" Then
MsgBox ("Kayıt işlemi için gerekli tüm bölümlere veri girmelisiniz." _
& Chr(10) & "Lütfen boş bıraktığınız bölümleri doldurunuz."), vbExclamation, "DİKKAT !"
Controls("TextBox" & a).SetFocus
Exit Sub

End If
Next a
x = Worksheets("FATURA").[b65536].End(xlUp).Row + 1
Worksheets("FATURA").Cells(x, 2).Activate
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
ActiveCell.Offset(0, 1) = CDate(TextBox1.Text)
ActiveCell.Offset(0, 2) = TextBox2.Text
ActiveCell.Offset(0, 3) = TextBox3.Text
ActiveCell.Offset(0, 4) = TextBox4.Text

Worksheets("FATURA").Range("B2").Select
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox1.SetFocus

Call Userform1_initialize
ActiveWorkbook.Save


End Sub[/vb:1:bfcfcc6089]
 

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
946
Excel Vers. ve Dili
Excel-2003
Altın Üyelik Bitiş Tarihi
16.08.2026
Bende hazırlamıştım.Ã?rnek olsun..
Gerçi Sayın ALPEN'in kodları daha kısa olmuş..

Kod:
Private Sub CommandButton1_Click()
If TextBox1.Value = "" Then
soru = MsgBox("1.TextBox TArih yazılmamış Devam edyimmi?", vbYesNo, "Dikkat")
TextBox1.SetFocus
If soru = vbYes Then GoTo devam
If soru = vbNo Then Exit Sub
End If
If TextBox2.Value = "" Then
soru = MsgBox("2.TextBox Boş Devam edeyimmi?", vbYesNo, "Dikkat")
TextBox2.SetFocus
If soru = vbYes Then GoTo devam
If soru = vbNo Then Exit Sub
End If
If TextBox3.Value = "" Then
soru = MsgBox("3.TextBox Boş Devam edeyimmi?", vbYesNo, "Dikkat")
TextBox3.SetFocus
If soru = vbYes Then GoTo devam
If soru = vbNo Then Exit Sub
End If
If TextBox4.Value = "" Then
soru = MsgBox("4.Mesaj", vbYesNo, "Dikkat")
TextBox4.SetFocus
If soru = vbYes Then GoTo devam
If soru = vbNo Then Exit Sub
End If
devam:
Sheets("FATURA").Select
Range("A2").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell.Offset(0, 1) = CDate(TextBox1.Text)
ActiveCell.Offset(0, 2) = TextBox2.Text
ActiveCell.Offset(0, 3) = TextBox3.Text
ActiveCell.Offset(0, 4) = TextBox4.Text
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1, "dd""/""mm""/""yyyy")
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sn. ALPEN,

İlgilendiğiniz için çok teşekkür ederim. Aşağıdaki 2 yazan yeri 1 yapınca kod gayet güzel çalıştı. :hey:

Worksheets("FATURA").Cells(x, 2).Activate
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sn. htsumer,

Vakit ayırdığınız için sizede teşekkür ederim. :hey:
 
Üst