Texbox'a girilen değeri sayı olarak hücreye aktarma

Katılım
22 Şubat 2007
Mesajlar
250
Excel Vers. ve Dili
excel xp
Forumda uzun uzun aradım. Benimle aynı dertten muzdarip arkadaş sayısı epey çok. Hemen hemen hepsi de sorunlarına çözüm bulmuş. Aynı çözümleri kendi çalışmama uyguladım ama sonuç hep aynı. Sorun çözülmedi.
Gönderdiğim dosyada Programa Giriş/Tabela Giriş düğmeleri ile açılan formda sağ taraftaki textboxlara sayı giriyorum. Buraya girdiğim sayılar liste sayfasına aktarılıyor. Ama liste sayfasına metin olarak aktarılıyor. Bu aktarımı sayıya çeviremedim. Acaba nerede hata yapıyorum.

Kod:
Private Sub CommandButton63_Click()
    Dim S1 As Worksheet, X As Integer
    Dim Y As Integer, Tarih As Range, Bul As Range
 
    Set S1 = Sheets("liste")
    Set Tarih = S1.Rows("1:1").Find(Calendar1.Value)
    If Not Tarih Is Nothing Then
        Y = Tarih.Column
 
        For X = 1 To 25
            If Me.Controls("ComboBox" & X) <> "" Then
                Set Bul = S1.Range("B:B").Find(Me.Controls("ComboBox" & X), , , xlWhole)
                If Not Bul Is Nothing Then
                    S1.Cells(Bul.Row, Y) = Me.Controls("TextBox" & X)
                End If
            End If
        Next
    End If
 
    Set S1 = Nothing
    Set Tarih = Nothing
    Set Bul = Nothing
 
    MsgBox "Kayıt işlemi tamamlanmıştır.", vbInformation
End Sub
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

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

Verdiğiniz kodu döngü kısmını aşağıdaki şekilde değiştirip deneyin.

Kod:
        For X = 1 To 25
            If Me.Controls("ComboBox" & X) <> "" Then
                Set Bul = S1.Range("B:B").Find(Me.Controls("ComboBox" & X), , , xlWhole)
                If Not Bul Is Nothing Then
                    If Me.Controls("TextBox" & X) <> "" And IsNumeric(Me.Controls("TextBox" & X)) Then
                        S1.Cells(Bul.Row, Y) = CDbl(Me.Controls("TextBox" & X))
                    Else
                        S1.Cells(Bul.Row, Y) = Me.Controls("TextBox" & X)
                    End If
                End If
            End If
        Next
 
Katılım
22 Şubat 2007
Mesajlar
250
Excel Vers. ve Dili
excel xp
Sayın Korhan Ayhan Bey;
Yukarıdaki mesajlarda sorunum çözülmüştü. Ancak ilgili textlere girdiğim ondalık değerler aktarılacağı sayfaya tam sayı olarak aktarılıyor. Ör: textboxa girdiğim 3,5 excele 35 olarak aktarılıyor. Bu da takvim nesnesi ile önceki tarihlere geri döndüğünde bilgiler hatalı oluyor.
 

hımmmmmmmm

Destek Ekibi
Destek Ekibi
Katılım
10 Temmuz 2011
Mesajlar
599
Excel Vers. ve Dili
2000-2007-2010-2016
slm

arkadaşım ben istifade edebileceğin türden bir şey yazayım... kotlar bana çok karışık geldi... gerek yok bu kadar çok kot yazmaya. ne kadar çok fuzuli satırlar var...

önce integer sayı tipini ,double yapıp dene.. olmuyosa aşağıdaki kodu macrona uygulamaya çalış...

Kod:
Dim SAYI As Double                                      'sayı türü tanımı

SATIR = WorksheetFunction.CountA(Range("A:A")) + 1    ' Son boş satır

  For I = 1 To 3                                             '3 adet textbox var
      If Trim(Controls("TEXTBOX" & I)) <> "" Then         'textbox boş değilse
          SAYI = Controls("TEXTBOX" & I)                     'sayı textbox olsun
          Cells(SATIR, I) = SAYI                            'sayısı hücreye aktar
      End If
  Next I
sayı tipi double sayı tipi olmalı
textte rakam varsa sayısal yapar ve hücreye sayısal olarak yazar...
 
Son düzenleme:

Korhan Ayhan

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

Siz nesneye 3.5 mi yazıyorsunuz, yoksa 3,5 mi yazıyorsunuz?

Virgüllü sayılar için ekteki küçük örnek dosyayı inceleyebilirsiniz.
 

Ekli dosyalar

Katılım
22 Şubat 2007
Mesajlar
250
Excel Vers. ve Dili
excel xp
Textboxa girilen sayıyı otomatik olarak 2 ondalıklı yazdırmak mümkün mü?
Mesela 1 yazınca 1,00 3,5 yazınca 3,50 ye dönüşsün.
 
Üst