textboxların değerini sayı formatına çevirme

Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
selamlar,

userform üzerinden veri girişi yaparak bu verileri excel sayfasına kayıt ediyorum. kayderken kullandığım kodlarda aşağıdaki gibi bir döngü kurdum,

Kod:
.....
sonsat = [a65536].End(3).Row + 1
For x = 1 To 78
Sheets("veri2").Cells(sonsat, x) = Controls("TextBox" & x)
Next
....
78 adet textbox taki veriyi son dolu satıra yan yana kayıt edilmesini sağlıyor.
ancak şöyle bir sorunum var.
textboxlardaki veriler hücreye metin formatında yazılıyor. halbuki textboxların bir kısmıyla metin , bir kısmıyla sayı formatında veriler girilmekte.

14,19,24,29,34,39,44,49,54,59,64,69 ve 74 ile
16,21,26,31,36,41,46,51,56,61,66,71 ve 76 nolu textboxlara rakamsal veriler girilmektedir.

bu veriler metin formatında excel kayıt edildiğinde topla formulü çalışmamaktadır.

bu sorunu kısa yoldan nasıl çözebilirim değerli üstadlar???
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

Kod:
[LEFT].....
sonsat = [a65536].End(3).Row + 1
For x = 1 To 78
deg=controls("textbox" & x)
if isnumeric(deg)=true then deg=cdbl(controls("textbox" & x))
Sheets("veri2").Cells(sonsat, x) = deg
Next
....[/LEFT]
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
Sn. Levent Bey,

cevabınız için çok teşekkürler. ancak daha önce öngöremediğim bir sorunla karşılaştım. bu textboxlardan bazılarına veri girişi tarih olarak yapılmaktaydı. kodu bu şekilde değiştirdiğimiz zaman tarih formatında olanları da sayıya çevirmiş oldu. yani veri "21.12.2005" ise onu "21122005" şekline getirdi.

bu sorunu nasıl çözebiliriz??

saygılar.
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
değerli üstadlarım,

bu konuda yapılabilecek bir şey var mıdır acaba?? ben düşündüm ama bir çözüm üretemedim. değerli fikirlerinizi bekliyorum...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,601
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Kullandığınız kodu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    sonsat = [a65536].End(3).Row + 1
    For x = 1 To 78
    If IsDate(Controls("textbox" & x)) = True Then
    deg = CDate(Controls("textbox" & x))
    Else
    deg = Controls("textbox" & x)
    End If
    If IsNumeric(deg) = True Then deg = CDbl(Controls("textbox" & x))
    Sheets("veri2").Cells(sonsat, x) = deg
    Next
End Sub
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
Sn. Cost_Control üstadım,

çok teşekkür ediyorum, dediğiniz şekilde sorunum çözüldü.
:icelim::icelim::icelim:

saygılar.
 
Üst