• DİKKAT

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

Textboxtan girilen değer

  • Konbuyu başlatan Konbuyu başlatan CaSpi
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Kasım 2004
Mesajlar
36
Excel Vers. ve Dili
2003 English
Selam Arkadaşlar. Ben bu hatayı nasıl gideririm? Userformda Textboxtan Sayfaya değer (rakam) aktarıyorum ama ekteki hatayı veiyor ve dolayısıyla hesaplama hatası oluyo. Sol üst köşede kırmızı hata veiyor.Lütfen yardım edermisiniz.
 

Ekli dosyalar

  • hata.jpg
    hata.jpg
    51.9 KB · Görüntüleme: 27
Merhaba,

Yazmı oldugunuz kodu görmek isterdim/k.Daha net cevap verebilme acısında.

Kod:
[b1]=int(textbox1)

yada

Kod:
[b1]=WorksheetFunction.Clean (Range("b1"))

Dediğim gibi kodu yada dosyanızı yazmıs olsaydınız daha sağlıklı cevap verilebilirdi.
 
If acustomer.Value = "" Then
MsgBox "Lütfen müşteri adini girin"
Exit Sub
End If

Dim bak As Range
Range("c1").Select
For Each bak In Range("c1:c" & WorksheetFunction.CountA(Range("c1:c10000")))
If StrConv(bak.Value, vbUpperCase) = StrConv(aquote.Value, vbUpperCase) Then
MsgBox "Böyle bir numara mevcut"
Exit Sub
End If
Next bak
asr.Value = WorksheetFunction.Count(Range("c1:c65000"))
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop

ActiveCell.Value = aquote.Value
ActiveCell.Offset(0, -2).Value = asr.Value
ActiveCell.Offset(0, -1).Value = acustomer.Value
ActiveCell.Offset(0, 1).Value = ajob.Value
ActiveCell.Offset(0, 2).Value = acontact.Value
ActiveCell.Offset(0, 3).Value = aadres.Value

ActiveCell.Select
On Error Resume Next
MsgBox "Quaotation has been created"
aquote.RowSource = "Quotations!c2:c" & bak + 1
aquote.Value = WorksheetFunction.Count(Range("c2:c65000")) + 1



Probelem aquote textboxundan sayfa1 aktardığım rakamlarda, bir iki kayıt sonra bakıyorum ki aktarmış olduğum bazı rakamların sol üst köşesinde kırmızı hata simgesi oluşmuş ve buda dolayısıla hesaplama hatası veriyo. bir sonraki kaydın numarasını ototmatik olarak vermiyo.
 
metinbiçiminde saklanan sayı hatasıysa aldıgınız hata örnegin sayfaya veri gönderdiginiz kod buysa:
ActiveCell.Offset(0, 1).Value = ajob.Value
ActiveCell.Offset(0, 1).Value = cdbl(ajob.Value)

ekleyin ancak bu kodu uyguladıgınız textbox-combobox boş ise yada sayı içermiyorsa hata verir.
 
Sayfada verinin bulunduğu sütun formatı number olarak ayarlı.
Evet değerler böyle akatarıyorum (ActiveCell.Offset(0, 1).Value = ajob.Value). Aslında bir iki kayıt yaptıktan sonra bazı kayıtların ekte belirtiyim gibi hatalı şekilde olduğunu fark ediyorum. Neden kaynaklanabilir acaba?
 
bunu denedinizmi?
ActiveCell.Offset(0, 1).Value = cdbl(ajob.Value)
 
Evet denedim tamam. Bir kaç gün kayıt girip test etmem lazım eğer sorun çıkarsa tekrar yazarım. Yardım için teşekkür ederim.
 
Evet denedim tamam. Bir kaç gün kayıt girip test etmem lazım eğer sorun çıkarsa tekrar yazarım. Yardım için teşekkür ederim.

ricaederim sorun çıkmaması lazım yanlız dedigim gibi o textbox boş olur yada sayısal deger olmazsa hata verecektir.saygılar.
 
Bir iki gün deneme sonucu yine aynı hata olayı. Ya bu sorun Exceli kapatıp açtıkta da oluşuyor. Anlaşılmayan şudur neden normal bir şekilde hücreye girilen rakam daha sonra hata veriyor. Bunların rakam olarak korunması için neler yapmak lazım? Beyler lütfen yardımcı olurmusunuz. (Hata ilk mesajda eklenmiştir)
 
Eeğer aşağıdaki kodu kullanıyorsanız .VBE hata veriyorsa.
Binlik ayıracı ve/veya ondalık ayıracı yanlış kullanıyor olabilirsiniz.Veya nesnenin içinde metin var veya nesne boştur.
Kod:
ActiveCell.Offset(0, 1).Value = cdbl(ajob.Value)
 
ActiveCell.Offset(0, 1).Value = cdbl(ajob.Value)
ActiveCell.Offset(0, 1).Value = (ajob.Value)
bu kodları da kullandım yine hata verdi. Texboxtan aktardığım zaman normal olarak çalışıyor yani rakam formatında ancak bir iki defa kapatıp açtıktan sonra bazı numaraların hatalı olduğunu fark ediyorum. Yani ben en son numaranın üzerine bir ilave ederekten kayıt giriyorum userforumdan dolayısıyla rakamlar hatalı olunca sorun çıkıyor.
 
Belli bir aralıklarla rakamlar giriyoruz. Şimdi bu rakamların bir müddet sonra error halinde (sol üst köşe yeşil üçgen) gözükmemesi için consolidate ile bir işlem yaptırabilirmiyiz makro ile, yani rakamı girildiyi gibi korumuş olsun.
Note: ActiveCell.Offset(0, 1).Value = cdbl(ajob.Value) bu kodu kullanmama rağmen yine hataları gözlmemliyorum.
 
kitabın açılışında hücelerdeki rakamlarla işlem yapan kod olabilir.
formdan veri gönderirken hücelerdeki rakamlarla işlem yapan kod olabilir.
sonuç olarak kendiliginden böyle oldugunu sanmıyorum kitabı başka isimle farklı kaydedip özel bilgilerinizi silip eklerseniz bakalım.
 
Bu sütunda sacede veri giriş ve veri okuma işlemi yürütüyorum. Birde güncüllüme (şiket adına göre) uygulaması bunu da şirket adına göre arma yaptıktan sonra yani güncellenen bilgiler arasında bu sütun yok. Bu numaralar girildikten sonra deyişmez olarak kalıyo. Demek istediyim bu sütunu bir makro ile hep consolidate işlemi gibi bishey yapabilirmiyiz. Yani rakamı nasıl girdiysek girilmiş halini korusun hiç bir şekilde her hangi bir etkiye maruz kalmasın ve excel de bunu hep rakam olarak anlasın. Ayrıca ilgiliniz için çok teşekkür ederim.
 
sayfanın kod bölümüne kopyalayın sayfa açılışında metin olarak saklanan sayıları düzeltir.(b sütunu için)

Private Sub Worksheet_Activate()
f = Range("b65536").End(xlUp).Row
For i = 1 To f
Cells(i, 50).Value = ""
Cells(i, 50).Value = Cells(i, 2).Value
Cells(i, 2).NumberFormat = "General"
Cells(i, 2).Value = ""
Cells(i, 2).Value = Cells(i, 50).Value
Next
End Sub
 
Fedeal kodları uygulayıp neticeni burada bildircem. İlgin için teşekkürler.
 
Private Sub Worksheet_Activate()
f = Range("b65536").End(xlUp).Row
For i = 1 To f
Cells(i, 50).Value = ""
Cells(i, 50).Value = Cells(i, 2).Value
Cells(i, 2).NumberFormat = "General"
Cells(i, 2).Value = ""
Cells(i, 2).Value = Cells(i, 50).Value
Next
End Sub


Evet yukarıdakı kodlar oluşan hatanı (rakam sol üst köşede yeşil üçgüen) kaldırıyor. Birde bu hatanın neden olduğu kodları tam olarak tespit ettim. Hataya neden aşağıdakı kodlar.

Private Sub qCommandButton9_Click()

Worksheets("fiyatlar").Select
'Range("c2").Select
Dim bak As Range
For Each bak In Range("c2:c" & WorksheetFunction.CountA(Range("c2:c2500")))
If StrConv(bak.Value, vbUpperCase) = StrConv(qquote.Value, vbUpperCase) Then

bak.Select


ActiveCell.Offset(0, -1).Value = qcustomer
ActiveCell.Offset(0, 0).Value = q1
ActiveCell.Offset(0, 1).Value = q2
ActiveCell.Offset(0, 2).Value = q3
ActiveCell.Offset(0, 3).Value = q4
ActiveCell.Offset(0, 4).Value = q5
ActiveCell.Offset(0, 5).Value = q6
ActiveCell.Offset(0, 6).Value = q7
ActiveCell.Offset(0, 7).Value = q8
ActiveCell.Offset(0, 8).Value = q9
ActiveCell.Offset(0, 9).Value = q10
ActiveCell.Offset(0, 10).Value = q11
ActiveCell.Offset(0, 11).Value = q12
ActiveCell.Offset(0, 12).Value = q13
ActiveCell.Offset(0, 13).Value = q14
ActiveCell.Offset(0, 14).Value = q15
ActiveCell.Offset(0, 15).Value = q15
ActiveCell.Offset(0, 16).Value = q16
ActiveCell.Offset(0, 17).Value = q17
ActiveCell.Offset(0, 18).Value = q18
ActiveCell.Offset(0, 19).Value = q19
ActiveCell.Offset(0, 20).Value = q20
ActiveCell.Offset(0, 21).Value = q21
ActiveCell.Offset(0, 22).Value = q22
ActiveCell.Offset(0, 23).Value = q23
ActiveCell.Offset(0, 24).Value = q24
ActiveCell.Offset(0, 25).Value = q25

MsgBox "Updated", 10, "Fiyatlar"
ActiveWorkbook.Save
On Error Resume Next
Exit Sub

End If
Next bak

End Sub
 
Geri
Üst