• DİKKAT

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

user form' da kayıt sırasında eksik bilgi uyarısı

Katılım
14 Şubat 2005
Mesajlar
137
öncelikle tüm arkadaşlara iyi çalışmalar dilerim

hazırlamış olduğum user form üzerinde bulunan combobox ve Textbox' a girilen verilerinin kaydı sırasında eksik veri girildiğinde kaydı yapmayarak uyarı gelmesini istiyorum

bazı kodlar girerek uyarı yazısı getiriyorum ancak tamam deyince kayda devam ediyor ve kaydı tamamlıyor.

boş alanları dolduruncaya kadar kaydı yapmasın istiyorum

bu konuda yardımlarınızı bekliyorum.
 
Sayın ayemenici,

Aşağıdaki kodlar belki size fikir verebilir.

[vb:1:1c6a5a9fc0]
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
[/vb:1:1c6a5a9fc0]
 
Selamlar,

Örnek bir kodda ben vermek istedim. Form üzerindeki 10 adet TextBox için düşünülmüştür.

Kod:
Private Sub CommandButton1_Click()
    For X = 1 To 10
    If Controls("TextBox" & X) = "" 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, "Dikkat !"
    Controls("TextBox" & X).SetFocus
    Exit Sub
    End If
    Next
    ....... 'BURDAN SONRA KAYIT KODLARINIZI EKLEYİNİZ.
End Sub
 
arkadaşlar kodları uygulayamadım aşağıdaki kodlara nasıl uygulayabilirim

Private Sub CommandButton1_Click()

If combobox1.Value = "" Or combobox2.Value = "" Or combobox3.Value = "" Or combobox5.Value = "" Or textbox1.Value = "" Or textbox2.Value = "" Then
MsgBox "Eksik bilgi girişi yaptınız. Lütfen ilgili bölümleri doldurunuz.", vbInformation
combobox1.SetFocus

End If
ActiveWorkbook.Save

Sheets("KAYIT").Select
Range("A3").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
If Range("A3").Value = "" Then
Range("A3").Value = 1
Range("A3").Select
Else
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
End If
ActiveCell.Offset(0, 1).Value = Worksheets("yükleme").Range("n4")
ActiveCell.Offset(0, 2).Value = combobox1
ActiveCell.Offset(0, 3).Value = combobox3
ActiveCell.Offset(0, 4).Value = combobox2
ActiveCell.Offset(0, 5).Value = textbox1 * 1
ActiveCell.Offset(0, 6).Value = textbox5
ActiveCell.Offset(0, 7).Value = textbox4
ActiveCell.Offset(0, 8).Value = textbox6
ActiveCell.Offset(0, 9).Value = combobox4
ActiveCell.Offset(0, 10).Value = textbox3
Sheets("KAYIT").Select

MsgBox "VERİ BAŞARIYLA KAYITDEDİLMİŞTİR.", vbInformation
End Sub
 
Sayın ayemenici,

Tam olarak denemedim ama aşağıdaki ilaveyi yaparsanız olacaktır.

MsgBox "Eksik bilgi girişi yaptınız. Lütfen ilgili bölümleri doldurunuz.", vbInformation
combobox1.SetFocus

Exit Sub
Else

ActiveWorkbook.Save
 
Sayın ayemenici,

Sondaki Enb Sub'dan önce End If eklemeniz gerekmektedir.
 
Sayın ayemenici,

Kodlarınızın son şekli aşağıdadır.

[vb:1:317d09ed51]
Private Sub CommandButton1_Click()

If combobox1.Value = "" Or combobox2.Value = "" Or combobox3.Value = "" Or combobox5.Value = "" Or textbox1.Value = "" Or textbox2.Value = "" Then
MsgBox "Eksik bilgi girişi yaptınız. Lütfen ilgili bölümleri doldurunuz.", vbInformation
combobox1.SetFocus
Exit Sub
Else
ActiveWorkbook.Save
Sheets("KAYIT").Select
Range("A3").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
If Range("A3").Value = "" Then
Range("A3").Value = 1
Range("A3").Select
Else
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
End If
ActiveCell.Offset(0, 1).Value = Worksheets("yükleme").Range("n4")
ActiveCell.Offset(0, 2).Value = combobox1
ActiveCell.Offset(0, 3).Value = combobox3
ActiveCell.Offset(0, 4).Value = combobox2
ActiveCell.Offset(0, 5).Value = TextBox1 * 1
ActiveCell.Offset(0, 6).Value = textbox5
ActiveCell.Offset(0, 7).Value = textbox4
ActiveCell.Offset(0, 8).Value = textbox6
ActiveCell.Offset(0, 9).Value = combobox4
ActiveCell.Offset(0, 10).Value = textbox3
Sheets("KAYIT").Select
MsgBox "VERİ BAŞARIYLA KAYITDEDİLMİŞTİR.", vbInformation
End If
End Sub
[/vb:1:317d09ed51]
 
sayın ripek bu komuta verilerden en az biri değişmedikçe kayıt butonuta basılsa dahi ikinci kez kaydetmesini önleyebilirmiyiz
 
Sayın ayemenici,

Tavsiyem kayıt için ortak bir alanın belirlenmesi ve buna göre kayıt yaptırmanızdır.Örneğin Malzeme Numarası, Sicil No gibi..

Bundan sonra mükerrer kayıt kontrolü yaptırarak çift kayıtı önleyebilirsiniz.

Excel için Örnek Uygulamalar bölümünde bununla ilgili çok güzel uygulamalar bulabilirsiniz.
 
Aşağıdaki kayıt tuşu kodunda textbox1,combobox2 ve textbox 3 ten herhangi birinde veri olmadığında kayıt yapmamasını nasıl sağlayabiliriz?

Private Sub CommandButton1_Click()
On Error Resume Next
Dim i As Integer
For i = 8 To 32000
If (ActiveSheet.Cells(i, 1) = "") Then
ActiveSheet.Cells(i, 1) = CDate(TextBox1)
ActiveSheet.Cells(i, 2) = ComboBox2.Text
ActiveSheet.Cells(i, 3) = TextBox3.Text * 1
ActiveSheet.Cells(i, 4) = TextBox4.Text * 1
ActiveSheet.Cells(i, 5) = TextBox5.Text * 1
ActiveSheet.Cells(i, 6) = TextBox10.Text * 1
ActiveSheet.Cells(i, 7) = TextBox11.Text * 1
ActiveSheet.Cells(i, 8) = TextBox13.Text * 1
ActiveSheet.Cells(i, 10) = TextBox7.Text * 1
ActiveSheet.Cells(i, 11) = ComboBox1.Text
MsgBox "Bilgi Eklendi !...", vbOKOnly + vbInformation, "Bilgi Ekleme"
CommandButton2_Click
TextBox8.Text = [j4]
TextBox9.Text = [J6]
UserForm_Initialize

Exit Sub
End If
Next i
End Sub
 
Selamlar,

Örnek bir kodda ben vermek istedim. Form üzerindeki 10 adet TextBox için düşünülmüştür.

Kod:
Private Sub CommandButton1_Click()
    For X = 1 To 10
    If Controls("TextBox" & X) = "" 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, "Dikkat !"
    Controls("TextBox" & X).SetFocus
    Exit Sub
    End If
    Next
    ....... 'BURDAN SONRA KAYIT KODLARINIZI EKLEYİNİZ.
End Sub

Merhabalar,
Öncelikle çok teşekkürler kodlamayı kolaylıkla kullandım. Bir sorum olacak bu kodlar hücrenin boş olması durumunda uyarı çıkmasını sağlıyor. Bana 6 karakterli olmazsa aynı uyarıyı tekrar çıkaracak şekilde kodlama lazım.
Sanırım küçük bir modifikasyonla yapılabilir. Fakat ben yapamadım yardımlarınızı rica ediyorum.
 
Geri
Üst