Userform üzerinden sayı hatası

Katılım
10 Şubat 2007
Mesajlar
100
Excel Vers. ve Dili
microsoft 2003
Arkadaşlar aşağıdaki verdiğim kodlarda userform üzerinden hücreyi değiştiriyorum (textbox1, textbox4 ve textbox5 lerde oluyor bu hata ); değiştirdiğim hücre sayı olarak algılamıyor metin olarak algılıyor yani sayı hatası veriyor. Textbox1 de ise arkadaşlar tarih formatı hata veriyor hücre görmüyor yok algılıyor hücrenin üzerinde çift tıklayınca görüyor, bu yüzden listboxlarda gözükmüyor. Arkadaşlar textbox kutularının sonuna *1 koymakta çözüm olmuyor bukezde kod hatası veriyor. Yardımcı olursanız sevinirim.
Kodlar aşağıda; dosyayı da ekte veriyorum.


Private Sub CommandButton5_Click()
'KAYIT DEĞİŞTİR TUŞU (ListBox üzerinde seçilen kayıtla ilgili değişiklik yapmak için kullanılmaktadır.)
'1 - ListBox nesnesinde veri olup olmadığını kontrol ediyoruz.
If ListBox2 = Empty Then
MsgBox "Veri kaydı bulunamamıştır.", vbExclamation, "Dikkat !"
Exit Sub
End If
'2 - ListBox nesnesinden seçim yapılıp yapılmadığını kontrol ediyoruz.
If ListBox2.ListIndex < 0 Then
MsgBox "Lütfen listeden veri seçimi yapınız.", vbExclamation, "Dikkat !"
Exit Sub
End If
'3 - Yapılacak değişiklik işlemi için kullanıcıdan onay alıyoruz.
If MsgBox("Seçtiğiniz kayıt üzerinde değişiklik yapılacaktır onaylıyor musunuz ?", vbCritical + vbYesNo, "Dikkat !") = vbYes Then
'4 - ListBox nesnesinde kayıtları temizliyoruz.
ListBox2.RowSource = Empty
'5 - Eğer kullanıcı değişiklik işlemi için onay vermişse verileri ilgili hücrelere aktarıyoruz.
Cells(ActiveCell.Row, "a") = Format(TextBox1.Text, "dd.mm.yyyy")
Cells(ActiveCell.Row, "b") = ComboBox1.Text
Cells(ActiveCell.Row, "c") = ComboBox2.Text
Cells(ActiveCell.Row, "d") = ComboBox3.Text
Cells(ActiveCell.Row, "e") = TextBox2.Text
Cells(ActiveCell.Row, "f") = TextBox3.Text
Cells(ActiveCell.Row, "g") = TextBox4.Text
Cells(ActiveCell.Row, "h") = TextBox5.Text
'6 - VERİ sayfasındaki verileri ListBox nesnesine yüklüyoruz.
With UserForm1.ListBox2
.BackColor = vbgrey
.ColumnCount = 8
.ColumnWidths = "50;83;20;120;63;130;72;71"
.ForeColor = vbRed
If Sheets("datalar").Range("A3") = Empty Then
.RowSource = Empty
Else
.RowSource = "datalar!a3:I" & [datalar!A65536].End(3).Row
End If
End With
MsgBox "Kayıt düzeltme işlemi tamamlanmıştır.", vbInformation, "Kayıt Düzeltme İşlemi"
Else
MsgBox "Kayıt düzeltme işlemi iptal edilmiştir.", vbInformation, "İşlem İptali"
End If
End Sub
 

Ekli dosyalar

Katılım
10 Şubat 2007
Mesajlar
100
Excel Vers. ve Dili
microsoft 2003
4 ve 5. textboxların hata vermesinin nedenini galiba buldum arkadaşlar şu kodlardan olabilir. Bu kodları hücrelerde sayı hatası vermeden nasıl formatlarım

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox4 = Format(TextBox4, ("##,###.00"))
End Sub

Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox5 = Format(TextBox5, ("##,###.00"))
End Sub
 
Katılım
8 Nisan 2005
Mesajlar
758
Excel Vers. ve Dili
Excel 2010 Türkçe
Sn demirkan
Mesajınızda dediğiniz gibi nedeni bulmuşsunuz. Biraz değiştirerek şöyle deneyiniz.
TextBox5 = Format(CDbl(TextBox5, "##,##0.00"))
Doğrusu size yol gösterecek kadar bilgim yok ama yukarıdaki kodu kullanıyor ve sorun yaşamıyorum. Ayrıca belki ustalarımızın dikkatini çekmesine vesile olur daha doğru cevap bulursunuz diye düşünüyorum.
Selamlar,
 
Katılım
10 Şubat 2007
Mesajlar
100
Excel Vers. ve Dili
microsoft 2003
çok teşekkür ederim biraz geç ooldu ama; ilginiz için teşekkürler
 
Üst