• DİKKAT

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

Listbox a girilen verilerin kaydolduktan sonra ekranın temizlenmesi

Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Arkadaşlar aşağıdaki kodla ilgili 2 sorum olacak.
1) Formda verileri yazıp kaydettiğimde Textboxların otomatik temizlenmesi mümkün mü. Bunu yapmak için aşağıdaki koda ne eklememiz gerekiyor
2) İlgili excel dosyasını açtığımda direk olarak bu formun ekrana gelmesini sağlamak için ne yapmam gerekiyor.
Teşekkürler


If TextBox4.Text <> "" Then
If TextBox5.Text <> "" Then


Son_Dolu_Satir = Sheets("DATA").Range("A65536").End(xlUp).Row

Bos_Satir = Son_Dolu_Satir + 1


Sheets("DATA").Range("A" & Bos_Satir).Value = _
Application.WorksheetFunction.Max(Sheets("DATA").R ange("A:A")) + 1

Sheets("DATA").Range("B" & Bos_Satir).Value = TextBox4.Text

Sheets("DATA").Range("C" & Bos_Satir).Value = TextBox5.Text

Else

MsgBox "Bilgileri eksiksiz girmeniz gerekiyor"


End If
End If
 
Son düzenleme:
Selam Dostum,

1- Kodun Sonuna,
Kod:
textbox1.text = ""
ekleyebilirsin.

2- Workbook açılış olayına,
Kod:
Userform1.show
ekleyebilirsin.
 
Hocam teşekkür ederim. Aşağıdaki kodu incelebilirseniz, tek bir commandbutton için uzun bir kod olmuş olabilir ama burada textbox ların aynı anda doldurulup ilgili çalışma sayfasını yazdırmak benim için çok kolaylık yaratacak ama aynı sütuna yönlendirilen textbox lardan birine veri girilmediğinde hiç bir veri gönderilemiyor ve dönüp baktığımda sütunu boş görüyorum. Commandbutton a bastığımda farklı textbox lardan aynı sütuna aynı anda veri atamıyor muyuz acaba yani boş olan textbox lardan dolayı mı böyle oluyor sorun ne olabilir ki...hazırladığım formu ekte gönderiyorum. Teşekkür ederim

Ekli dosyayı görüntüle MTL.xlsm


Private Sub CommandButton1_Click()

If TextBox4.Text <> "" Then
If TextBox5.Text <> "" Then
If TextBox6.Text <> "" Then
If TextBox7.Text <> "" Then
If TextBox8.Text <> "" Then
If TextBox9.Text <> "" Then
If TextBox10.Text <> "" Then
If TextBox11.Text <> "" Then
If TextBox12.Text <> "" Then
If TextBox13.Text <> "" Then
If TextBox14.Text <> "" Then
If TextBox15.Text <> "" Then
If TextBox88.Text <> "" Then
If TextBox90.Text <> "" Then
If TextBox92.Text <> "" Then
If TextBox94.Text <> "" Then
If TextBox96.Text <> "" Then
If TextBox98.Text <> "" Then

Son_Dolu_Satir = Sheets("MTL").Range("A65536").End(xlUp).Row

Bos_Satir = Son_Dolu_Satir + 1


Sheets("MTL").Range("A" & Bos_Satir).Value = _
Application.WorksheetFunction.Max(Sheets("MTL").Range("A:A")) + 1

Sheets("MTL").Range("B" & Bos_Satir).Value = TextBox4.Text
Sheets("MTL").Range("B" & Bos_Satir).Value = TextBox7.Text
Sheets("MTL").Range("B" & Bos_Satir).Value = TextBox9.Text
Sheets("MTL").Range("B" & Bos_Satir).Value = TextBox11.Text
Sheets("MTL").Range("B" & Bos_Satir).Value = TextBox13.Text
Sheets("MTL").Range("B" & Bos_Satir).Value = TextBox15.Text

Sheets("MTL").Range("C" & Bos_Satir).Value = TextBox5.Text
Sheets("MTL").Range("C" & Bos_Satir).Value = TextBox6.Text
Sheets("MTL").Range("C" & Bos_Satir).Value = TextBox8.Text
Sheets("MTL").Range("C" & Bos_Satir).Value = TextBox10.Text
Sheets("MTL").Range("C" & Bos_Satir).Value = TextBox12.Text
Sheets("MTL").Range("C" & Bos_Satir).Value = TextBox14.Text

Sheets("MTL").Range("D" & Bos_Satir).Value = TextBox88.Text
Sheets("MTL").Range("D" & Bos_Satir).Value = TextBox90.Text
Sheets("MTL").Range("D" & Bos_Satir).Value = TextBox92.Text
Sheets("MTL").Range("D" & Bos_Satir).Value = TextBox94.Text
Sheets("MTL").Range("D" & Bos_Satir).Value = TextBox96.Text
Sheets("MTL").Range("D" & Bos_Satir).Value = TextBox98.Text

Else

MsgBox "LÜTFEN BİLGİLERİ EKSİKSİZ GİRİNİZ"

End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If


TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
TextBox13.Text = ""
TextBox14.Text = ""
TextBox15.Text = ""
TextBox88.Text = ""
TextBox90.Text = ""
TextBox92.Text = ""
TextBox94.Text = ""
TextBox96.Text = ""
TextBox98.Text = ""


End Sub
 
Merhaba,

Tüm TextBox nesnelerinin boş olmasını sorgulamışsınız. Doğal olarak kod bir tanesi bire boşsa işlemi sonlandırıyor. Yapmak istediğiniz işlemi açıklarsanız ona göre kod yazılabilir.
 
Teşekkürler hocam. Burada veri sorgulama değil de veri girişi için kod yazmaya çalıştım. Yüklediğim dosyada da görebileceğiniz gibi yapmak istediğim aynı sütuna yönlendirilmiş textbox ların bazıları boş bırakılıp kaydedildiğine dolu olan textbox ların veri girişini engellememesi ve aynı sütuna bir kaç textbox tan tek commandbutton ile aynı anda veri girişinin mümkün kılınması. Umarım anlatabilmişimdir :( . Yardımcı olabilirseniz sevinirim
 
Merhaba,

İfadelerinizden tam olarak ne yapmak istediğiniz anlaşılmıyor. Form yapınıza bakarak şu yorumu yapabilirmiyiz.

Ekrana gelen formdaki textboxlara veri gireceğiz girilen verilerden dolu olanlar alt alta tek seferde sayfaya kayıt edilecek.

Eğer istediğiniz işlem buysa yapılabilir.
 
Arkadaşlar aşağıdaki kodla ilgili 2 sorum olacak.
1) Formda verileri yazıp kaydettiğimde Textboxların otomatik temizlenmesi mümkün mü. Bunu yapmak için aşağıdaki koda ne eklememiz gerekiyor
2) İlgili excel dosyasını açtığımda direk olarak bu formun ekrana gelmesini sağlamak için ne yapmam gerekiyor.
Teşekkürler

İlk isteğiniz için şu kodları önerebilirim;
Kod:
    Dim Evn As Control
    For Each Evn In Me.Controls
        If VBA.TypeName(Evn) = "TextBox" Then
            Evn.Value = ""
        End If
    Next Evn
    Set Evn = Nothing
İkinci istediğiniz için de şu kodu Module içerisine yazabilirsiniz;
Kod:
Sub Auto_Open()
   UserForm1.Show
End Sub
Ya da Sn. Milady Meriç Bey'in dediği gibi: ThisWorkbook kod sayfasına şu kodları yazabilirsiniz;
Kod:
Private Sub Workbook_Open()
    UserForm1.Show
End Sub
Eğer; dosyayı açarken Excel görünmesin ve sadece UserForm görünsün demek istediyseniz;
yukarıda verdiğim iki koddan birine, UserForm1.Show satırından önce Application.Visible = False yazabilirsiniz.
Tekrar Excel görünsün istediğinizde de, herhangi bir olaya Application.Visible = True yazabilirsiniz...

Diğer isteklerinizle ilgili olarak, Korhan Bey'in de ifade ettiği gibi: daha açık ve net olmalısınız. Ne istediğinizi en basit şekilde ifade etmeye çalışın.
 
Merhaba,

Bir önceki mesajımdaki gibi anladığım şekilde örnek dosyanızı düzenledim. Bu tarz işlemleri kısa kodlarla yapabilmeniz için nesneleri ardışık numaralarla oluşturmanız önemlidir. Bu sebeple nesneleri sizilp tekrar oluşturdum. Sizde bundan sonraki formlarınızda bu konuya dikkat edin. Daha sonra faydasını çok görürsünüz.

Örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Korhan Bey elinize sağlık tam olarak istediğim şeyi söylemişsiniz
"Ekrana gelen formdaki textboxlara veri gireceğiz girilen verilerden dolu olanlar alt alta tek seferde sayfaya kayıt edilecek."
ancak eklediğiniz ÖRNEK.xlsm dosyasında bir uyarı almaktayım çalıştıramadığım için kodun tam olarak ne işe yaradığını bulamadım...tekrar alabilirsem sevinirim.
 
Merhaba,

Dosyayı ".xls" olarak güncelledim. Tekrar deneyin.

Kullandığım kod;

Kod:
Private Sub CommandButton1_Click()
    Dim X As Integer, Y As Byte, Son_Dolu_Satir As Long, Bos_Satir As Long
    
    Son_Dolu_Satir = Sheets("MTL").Range("A65536").End(xlUp).Row
    
    Bos_Satir = Son_Dolu_Satir + 1
    
    For X = 87 To 104 Step 3
        Sheets("MTL").Range("A" & Bos_Satir).Value = _
        Application.WorksheetFunction.Max(Sheets("MTL").Range("A:A")) + 1
        Sheets("MTL").Cells(Bos_Satir, "B").Value = Controls("TextBox" & X).Text
        Sheets("MTL").Cells(Bos_Satir, "C").Value = Controls("TextBox" & X + 1).Text
        Sheets("MTL").Cells(Bos_Satir, "D").Value = Controls("TextBox" & X + 2).Text
        Bos_Satir = Bos_Satir + 1
    Next
    
    For X = 87 To 104
        Me.Controls("TextBox" & X) = ""
    Next
    
    MsgBox "Kayıt işlemi tamamlanmıştır.", vbInformation
End Sub
 
Hocam teşekkür ederim ama bu bu kodu çalıştıramadım. Aşağıdaki hatayı almaktayım

Compile error:
Can't find project or library
 
Korhan Hocamın affına sığınarak,

Kod bölümünün en üstündeki şu satıra, kırmızı renkli bölümü ekleyerek deneyin.
Dim X As Integer, Y As Byte, Son_Dolu_Satir, Bos_Satir
 
Merhaba,

Sanırım sürüm uyumsuzluğundan kaynaklanıyor.

Kod editörünü açın.
Tools-References menüsünden "MISSING" ile başlayan referansları pasif yapıp deneyin.

Hocam teşekkür ederim ama bu bu kodu çalıştıramadım. Aşağıdaki hatayı almaktayım

Compile error:
Can't find project or library
 
Teşekkürler arkadaşlar...Korhan hocam dediğiniz gibi uyumsuzluk sorununu çözdüm. Kayıt işlemi sırasında sadece ilk sıra textbox a veri girmeme rağmen ID ye 1'den 6'kadar rakam atıyor, ikinci kayıtta kayıt noktası 6 satır sonra başlıyor yani arada boş satırlar oluşuyo...form da bütün textbox lara her zaman veri girilmeyeceği yani bazıları boş kalabileceği için sorun oluşturmakta
 
Murat hocam söylediğiniz kodu pek anlayamadım yani hangi textbox hangi sütuna gideceği hakkında bir bilgi yok...dediğiniz gibi bunu uygulanabilir yapmak için ne eklememiz gerekiyor. Teşekkürler
 
Geri
Üst