• DİKKAT

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

Excelde doldurulması zorunlu alan yapma

Katılım
24 Aralık 2017
Mesajlar
5
Excel Vers. ve Dili
excel 2016 türkçe
Arkadaşlar merhaba excelde ve forumda yeniyim.
Elimde bir sipariş formu var ve ben bazı yerlerin doldurulmasını zorunlu yapmak istiyorum.Yardımcı olabilir misiniz?
Şimdiden teşekkürler.
 
Geçenlerde benzer bir çalışma yaptım. Ama ben verileri UserForm ile aktardım. UserForm 'a eklediğim TextBox'lara uzunluk ve kısalık değerleri vererek doldurulması zorunlu alanlar haline
getirdim. Ama bunu hücrelerde yapabilir misin bilemiyorum. TextBox için kullanacağın kod aşağıda.

Bu kod maximum girilecek karakter sayısını belirliyor.
Kod:
TextBox4.MaxLength = 12

Bu da belirlediğim karakterin altında ya da boş girerse uyarı veriyor.
Kod:
ElseIf TextBox4.Text = "" Then
Uyarı1 = MsgBox("GTIP Numarası Girmediniz!", vbOKOnly + vbCritical, "HATA!")
TextBox4.SetFocus
Exit Sub
ElseIf Len(TextBox4.Text) < 12 Then
Uyarı1 = MsgBox("GTIP Numarasını Eksik Karakter Girdiniz. 12 Karakter Girmelisiniz!", vbOKOnly + vbCritical, "HATA!")
TextBox4.SetFocus
Exit Sub
 
Ya peki birşey daha sorabilir miyim?
Bu kodu böylece kopyala yapıştırmı yapıcam nasıl olacak hiç bilmiyorumda yardım eder msiiniz?
 
Geçenlerde benzer bir çalışma yaptım. Ama ben verileri UserForm ile aktardım. UserForm 'a eklediğim TextBox'lara uzunluk ve kısalık değerleri vererek doldurulması zorunlu alanlar haline
getirdim. Ama bunu hücrelerde yapabilir misin bilemiyorum. TextBox için kullanacağın kod aşağıda.

Bu kod maximum girilecek karakter sayısını belirliyor.
Kod:
TextBox4.MaxLength = 12

Bu da belirlediğim karakterin altında ya da boş girerse uyarı veriyor.
Kod:
ElseIf TextBox4.Text = "" Then
Uyarı1 = MsgBox("GTIP Numarası Girmediniz!", vbOKOnly + vbCritical, "HATA!")
TextBox4.SetFocus
Exit Sub
ElseIf Len(TextBox4.Text) < 12 Then
Uyarı1 = MsgBox("GTIP Numarasını Eksik Karakter Girdiniz. 12 Karakter Girmelisiniz!", vbOKOnly + vbCritical, "HATA!")
TextBox4.SetFocus
Exit Sub



Ben size excel dosyasını mail atsam sizde onun üzerinde yapsanız bende bakıp anlamaya çalışsam olurmu?
 
Mail Atmayın buraya bir adrese yükleyip koyun, bende o şekilde geri dönüş yapayım. Bu konuya giren başka arkadaşlar olursa, onlarda yararlansın.
 
Dosyanız
https://www.dosyaupload.com/lXbS

Ben Firma adı ve Sipariş Girşi ekranını oluşturdum. Firma Adı'na "BOŞ GEÇİLEMEZ" diye Eğer kodu kodladım. Sipariş Girişinde bu kod yok, doluysa bir alt satıra yazar. Alt+F11 diyerek makro kodlarına ulaşabilirsiniz. Gerisini artık kodlardan bakarak çözersiniz.

NOT: Aşağıdaki kodlar başkaları da görsün diye. Attığım excel'de bu kodlar var.

EKRAN GÖRÜNTÜLERİ:
EXCEL SAYFASI GÖRÜNTÜSÜ


FİRMA GİRİŞİ FORMU


SİPARİŞ GİRİŞİ FORMU


Kullandığım Kodlar:
Modul 1
Kod:
Sub FirmaGirisi_Show()
    FirmaGirisi.Show
End Sub

Sub Sayfa_Temizle()
mesaj = MsgBox("Sayfayı temizlemek istiyor musunuz? Bu işlemin geri dönüşü yoktur!", vbYesNo + vbQuestion, "SAYFAYI TEMİZLE?")

Select Case mesaj

Case Is = vbYes
    Sayfa1.Range("E8:E13, F13, J6:J12, D16:J35").ClearContents
    MsgBox ("İşlem başarıyla gerçekleştirildi.")
Case Is = vbNo
    MsgBox ("İşlem iptal edildi.")
End Select
End Sub

Sub SiparisGirisi_Show()
   SiparisGirisi.Show
End Sub

UserForm1 - FirmaGirisi

Kod:
Private Sub CommandButton1_Click()
If TextBox1.Text = "" Then
mesaj = MsgBox("Firma adı yazmadınız! Firma adı boş bırakılamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox1.SetFocus
Exit Sub
ElseIf TextBox2.Text = "" Then
mesaj = MsgBox("Firma adresi yazmadınız! Firma adresi boş bırakılamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox2.SetFocus
Exit Sub
ElseIf TextBox3.Text = "" Then
mesaj = MsgBox("Firma Vergi Dairesi yazmadınız! Firma Vergi Dairesi boş bırakılamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox3.SetFocus
Exit Sub
ElseIf TextBox4.Text = "" Then
mesaj = MsgBox("Firma VN/TC no yazmadınız! Firma VN/TC no boş bırakılamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox4.SetFocus
Exit Sub
End If

If Sayfa1.Range("E8").Value = "" Then
Sayfa1.Range("E8").Value = TextBox1.Text
ElseIf Sayfa1.Range("E8").Value <> "" Then
mesaj = MsgBox("Firma adı dolu! Aktarım yapmadan önce bilgileri temizleyin!", vbOKOnly + vbExclamation, "UYARI!")
End If
If Sayfa1.Range("E9").Value = Empty Then
Sayfa1.Range("E9").Value = TextBox2.Text
ElseIf Sayfa1.Range("E9").Value <> "" Then
mesaj = MsgBox("Firma adresi dolu! Aktarım yapmadan önce bilgileri temizleyin!", vbOKOnly + vbExclamation, "UYARI!")
End If
If Sayfa1.Range("E13").Value = "" Then
Sayfa1.Range("E13").Value = TextBox3.Text
ElseIf Sayfa1.Range("E13").Value <> "" Then
mesaj = MsgBox("Vergi / TC No bilgileri dolu! Aktarım yapmadan önce bilgileri temizleyin!", vbOKOnly + vbExclamation, "UYARI!")
End If
If Sayfa1.Range("F13").Value = "" Then
Sayfa1.Range("F13").Value = TextBox4.Text
Sayfa1.Range("F13").NumberFormat = "###########"
ElseIf Sayfa1.Range("F13").Value <> "" Then
mesaj = MsgBox("Vergi / TC No bilgileri dolu! Aktarım yapmadan önce bilgileri temizleyin!", vbOKOnly + vbExclamation, "UYARI!")
End If
Unload Me
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub

UserForm2 - SiparisGirisi
Kod:
Private Sub CommandButton1_Click()
If TextBox1.Text = "" Then
mesaj = MsgBox("Sip.No. Boş olamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox1.SetFocus
Exit Sub
ElseIf TextBox2.Text = "" Then
mesaj = MsgBox("Sipariş Tarihi Boş olamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox2.SetFocus
Exit Sub
ElseIf TextBox3.Text = "" Then
mesaj = MsgBox("Sevk Tarihi Boş olamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox3.SetFocus
Exit Sub
ElseIf TextBox4.Text = "" Then
mesaj = MsgBox("Vade Tarihi Boş olamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox4.SetFocus
Exit Sub
End If


If Sayfa1.Range("J6").Value = "" Then
Sayfa1.Range("J6").Value = TextBox1.Text
End If
If Sayfa1.Range("J8").Value = "" Then
Sayfa1.Range("J8").Value = TextBox2.Text
End If
If Sayfa1.Range("J10").Value = "" Then
Sayfa1.Range("J10").Value = TextBox3.Text
End If
If Sayfa1.Range("J12").Value = "" Then
Sayfa1.Range("J12").Value = TextBox4.Text
End If

son = Sayfa1.Range("F" & Rows.Count).End(xlUp).Row
son_satır = 35

If son = 35 Then
mesaj = MsgBox("Sayfa doldu! Bilgileri temizleyin ya da yeni saya açın!", vbCritical + vbOKOnly, "UYARI!")
Exit Sub
End If

Sayfa1.Range("D" & son + 1).Value = TextBox5.Text
Sayfa1.Range("E" & son + 1).Value = TextBox6.Text
Sayfa1.Range("F" & son + 1).Value = TextBox7.Text
Sayfa1.Range("G" & son + 1).Value = TextBox8.Text
Sayfa1.Range("H" & son + 1).Value = TextBox9.Text
Sayfa1.Range("I" & son + 1).Value = CDbl(TextBox10.Text)
Sayfa1.Range("I" & son + 1).NumberFormat = "#,##0.00"
Sayfa1.Range("J" & son + 1).Value = CDbl(TextBox11.Text)
Sayfa1.Range("J" & son + 1).NumberFormat = "#,##0.00"

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""

MsgBox ("İşlem Başarılı")
TextBox1.SetFocus
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub
 
Taner bey bugün detaylıca inceleyebildim.Çok teşekkür ederim.
Bir sorum daha olacak.
Şimdi ben bi adres defteri yaptım 1. sayfaya yazdığımın 2.sayfadaki bir yere geçmesini istiyorum.
Yaptım ama hep son yazdığım geliyo?
Dosyayı atsam bakabilir misiniz ?
http://s7.dosya.tc/server/nfvcm2/Adres_listesi111.zip.html
Video ile anlatırsanız çok iyi olur
Şimdiden teşekkür ederim.
 
Merhabalar

Peki boş bırakılan alan için uyarı veriyor ama ben boş alan doldurulmadan kayıt etmesini istemiyorum nerde eksik yaptım acaba
Kod:
Private Sub CommandButtonKaydet_Click()

Dim x As Long
Dim st As Integer
st = 1
For x = 2 To 10000
If Sheets("PERSONEL KAYIT").Range("A" & x).Value = "" Then
st = x
Exit For
End If
Next x
Sheets("PERSONEL KAYIT").Range("A" & st).Value = st - 1
Sheets("PERSONEL KAYIT").Range("B" & st).Value = UCase(TextBox1.Text)
Sheets("PERSONEL KAYIT").Range("C" & st).Value = UCase(TextBox2.Text)
Sheets("PERSONEL KAYIT").Range("D" & st).Value = UCase(TextBox3.Text)
Sheets("PERSONEL KAYIT").Range("E" & st).Value = UCase(TextBox4.Text)
Sheets("PERSONEL KAYIT").Range("F" & st).Value = UCase(TextBox5.Text)
Sheets("PERSONEL KAYIT").Range("G" & st).Value = UCase(TextBox6.Text)
Sheets("PERSONEL KAYIT").Range("H" & st).Value = UCase(TextBox7.Text)
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox1.SetFocus

If TextBox1.Text = "" Then
mesaj = MsgBox("Personel Kodu! Personel kodu boş bırakılamaz!", vbOKOnly + vbExclamation, "UYARI!")
TextBox1.SetFocus
End If

End Sub
 
Koldarınızın en sonundaki Aşağıdaki satırı kodların başına, Dim satırlarının hemen altına taşıyın ve eklediğim satırı da ilave edin
C++:
If TextBox1.Text = "" Then
    'mesajbox satırınızı düzelttim'
    MsgBox "Personel Kodu! Personel kodu boş bırakılamaz!", vbOKOnly + vbExclamation, "UYARI!"
    TextBox1.SetFocus
    'Exit sub ilave ettim'
    Exit Sub
End If

Ayrıca aşağıdaki kod parçası sizi sadece yavaşlatır. Farklı, kolay ve hızlı çözümleri de var.
C++:
For x = 2 To 10000
If Sheets("PERSONEL KAYIT").Range("A" & x).Value = "" Then
st = x
Exit For
End If
 
Geri
Üst