UserFormda TextBox denetimi

Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Yeniden Merhabalar

Bilmiyorum başlık doğrumu ama derdimi yazınca siz karar verin.

UserForm üzerinde
17 textbox var ve 17 adet te lbl var

kullanıcıların bu textboxların tamamını doldurmadan
kaydet butonunun işe yaramasını istemiyorum.
ve hangi alanı doldurmamışsa o alanla alakalı olarak mesaj almasını istiyorum.
örneğin " Lütfen Sıra no Giriniz" gibi.

TextBoxların herbirinin adı ayrı yani TextBox1...2...3 gibi gitmiyor
Sizler için kolay belki ama biz acemiler için everest gibi duruyor.

Saygılarımla
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları kullanabilirsiniz.

Textbox adlarını kendinize göre uyarlayınız.

Kod:
Private Sub CommandButton1_Click()
Dim mesaj As Variant
For Each ctrl In UserForm1.Controls
    If TypeName(ctrl) = "TextBox" Then
        If ctrl.Value = Empty Then
            mesaj = mesaj & ctrl.Name & Chr(13)
        End If
    End If
Next
If mesaj <> "" Then
MsgBox mesaj & "-------------------------" & Chr(13) & " alanları boş olamaz"
TextBox1.SetFocus
Exit Sub
Else
Cells(2, 1).Value = TextBox1.Value
Cells(2, 2).Value = TextBox1.Value
Cells(2, 3).Value = TextBox1.Value
Cells(2, 4).Value = TextBox1.Value
MsgBox "Kayıt İşlemi Tamamlandı"
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
End If
End Sub
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Merhaba ripek

Kodları uygulamaya çalıştım ama başaramadım. Önceden kendi yazdığım kodları aşağıya yapıştırıyorum.Bunlarla ne demek istediğim biraz daha iyi anlatabilirim umarım. Sizin yazdığınız kodda cells olayı var benim hücrelerle alakalı bir kontrolüm olmayacak sadece frmUserForm1 üzerindeki textbox ları kontrol ederek hepsinin doldurulmuş olduğundan emin olarak kayıt yapılmasını istiyorum. Kontrol yapmak için yazdığım kodlar aşağıdaki gibidir.
If txtAlınanfirma.Value <> " " Then
MsgBox "Firma Adı Boş Geçilemez"
txtAlınanfirma.SetFocus
Exit Sub
End If

If txtKumaşcinsi.Value <> " " Then
MsgBox "Kumaşcinsi Boş Geçilemez"
txtKumaşcinsi.SetFocus
Exit Sub
End If

If txtKumaşbileşimi.Value <> " " Then
MsgBox "Kumaşbileşimi Boş Geçilemez"
txtKumaşbileşimi.SetFocus
Exit Sub
End If

If txtrenk.Value <> " " Then
MsgBox "Renk ve Nosu Boş Geçilemez"
txtrenk.SetFocus
Exit Sub
End If

If txtgr.Value <> " " Then
MsgBox "Gr./M2 Boş Geçilemez"
txtgr.SetFocus
Exit Sub
End If

If txtEn.Value <> " " Then
MsgBox "En Boş Geçilemez"
txtEn.SetFocus
Exit Sub
End If

If txtFiyat.Value <> " " Then
MsgBox "Fiyat Boş Geçilemez"
txtFiyat.SetFocus
Exit Sub
End If

If txtMüşteri.Value <> " " Then
MsgBox "Müşteri Adı Boş Geçilemez"
txtMüşteri.SetFocus
Exit Sub
End If

If txtModel.Value <> " " Then
MsgBox "Model Boş Geçilemez"
txtModel.SetFocus
Exit Sub
End If

If txtKilo.Value <> " " Then
MsgBox "Model Boş Geçilemez"
txtKilo.SetFocus
Exit Sub
End If

If txtTeslimeden.Value <> " " Then
MsgBox "Teslim Eden Mutlak Yazılmalı"
txtTeslimeden.SetFocus
Exit Sub
End If
Bu kodlarla kontrol etmeye çalıştığımda ilk kontrolü aşamıyorum.Hep aynı textbox u kontrol ediyor, oysa ilki dolu olunca ikinciye,ikinci dolunca üçüncüye şeklinde bütün textboxların doluluğunu kontrol etmesini istiyorum.
saygılarımla
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kod:
If txtAl&#305;nanfirma.Value <> " " Then
Yukar&#305;daki ve di&#287;er sat&#305;rlar&#305;n&#305;zdaki hata " " i&#351;aretidir. Bu i&#351;aret "" &#351;eklinde olmal&#305;d&#305;r.

Kod:
If txtAl&#305;nanfirma.Value <> "" Then
Not:Bence textboxlar&#305; ve labelleri ard&#305;&#351;&#305;k olarak isimledirirseniz sorunuz basit bir d&#246;ng&#252; ile &#231;&#246;z&#252;lebilir.
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Kod:
If txtAlınanfirma.Value <> " " Then
Yukarıdaki ve diğer satırlarınızdaki hata " " işaretidir. Bu işaret "" şeklinde olmalıdır.

Kod:
If txtAlınanfirma.Value <> "" Then
Not:Bence textboxları ve labelleri ardışık olarak isimledirirseniz sorunuz basit bir döngü ile çözülebilir.

Merhaba Sn.leventm

Yukarıdaki textbox lara ardışık sayı verdiğimizi varsayarsak nasıl bir döngü kurula bilir ? buna bir örnek verebilirmisiniz.
Teşekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyanızı eklerseniz onun üzerinden gidelim.
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Merhaba Sayın leventm

Dosyayı eklemeye çalıştım
açıklama textbox hariç diğer bölümlerin kesinlikle doldurulmadan kayıt yapılmaması gerekiyor.Böyle bir denetim getirebilirmiyiz.
Fazla olmaz ise eğer birde yukarıdaki comboları menü şeklinde nasıl yapabiliriz
Saygılarımla
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekli dosyayı inceleyin. Özellikle label ve textboxlara verdiğim isimlere dikkat edin. Menü içinde arama motoruna "menü" kelimesini yazarak arama yaparsanız çok sayıda linke ulaşabilirsiniz.
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Teşekkürler

Sayın leventm

Emeğiniz için teşekkür ediyorum.
Menü olayına girince tekrar sizleri rahatsız edeceğim.
Saygılarımla
 
Üst