[Yardım]  TextBox Format Sorunu

Metin Kutucuğu. Bir programcının olmazsa olmazlarındandır.

TextBox Format Sorunu

İleti#1)  Haldunc » 23 Şub 2021 08:17

Sorum için benzer başlık olarak buraya yazmak istedim.

UseFormda bulunan TextBox7 ye yazdığım herhangi bir rakamı

Virgülden sonra 4 hane olarak çevirip Kaydete bastığımda Kayıt olduğu hücrede bambaşka bir hal alıyor.

Kodum şu şekilde

Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox7.Value = Format(CDbl(TextBox7.Value), ("#,##0.0000"))

End Sub

Örneğin TextBox7 ye 12,97 yazdığımda sözkonusu TextBox7 den çıkarken (başka TextBox a geçerken) TextBox7 deki rakam 12,9700 oluyor. Buraya kadar normal giderken Kaydete bastığımda Kaydedilen hücrede bu değer 129700,0000 oluyor. Oysa buraya da 12,9700 olarak gelmesi lazım.
Sıkıntı ne olabilir?

Teşekkürler
(Aynı Başlıklı Başka Bir Konu İçinde Sormuştum ama "ÇÖZÜLDÜ" ibaresinden sanırım, bir yanıt alamadım.
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#2)  Miraç CAN » 23 Şub 2021 08:41

Bu şekilde kullanıp, hane sayısını hücreden ayarlayın ActiveCell.Value = CDbl(Me.TextBox7.Value)
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 1009
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

Cevap: TextBox Format Sorunu

İleti#3)  Haldunc » 23 Şub 2021 09:09

Miraç CAN yazdı:Bu şekilde kullanıp, hane sayısını hücreden ayarlayın ActiveCell.Value = CDbl(Me.TextBox7.Value)


Bu kodu yazdığımda,
Eğer TextBox7 ye tam sayı yazarsam (ondalıksız) formül işe yarıyor. Örneğin 1 yazdım hücreye kaydolurken 1,0000 olarak geçti.
Ama TextBox7 ye ondalıklı yazarsam örneğin 12,7865 yazdım Hücreye 127.865 olarak geçti. Oysa bunu 12,7865 olarak geçmasi gerekiyordu.

Hassas tartım (0,0000 hassasiyetinde) sonuçlarını yazacağımızdan, TextBox7 ye de 0,0000 haneli rakamlar yazılacak. Sonra bu rakamlar başka formüllerde kullanılacak.
Dosya ekte. UserForm1 de TextBox7
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#4)  Miraç CAN » 23 Şub 2021 09:47

Haldun Bey, verdiğim kod örnekti.
Kodu sayfaya verileri kaydettiğiniz olaya/butona yazmanız gerekiyor TextBox7_Exit olayı ile alakası yok, ve hücre biçimden ondalık formatını ayarlamanız.
Range("YazılacakHücreAdresi") = CDbl(Me.TextBox7.Value)
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 1009
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: TextBox Format Sorunu

İleti#5)  Haldunc » 23 Şub 2021 12:27

Olmuyor.

Bu formatlamanın adam akıllı bir kodu yok sanırım.
Eski sorulara da bakıyorum her soruya farklı farklı çözümler sunulmuş.
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#6)  Miraç CAN » 23 Şub 2021 14:07

İnceleyin;
Ornek.7z
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 1009
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: TextBox Format Sorunu

İleti#7)  Haldunc » 24 Şub 2021 12:03

Benim dosyaya bunu uygulayamadım maalesef, yöntem olarak güzel ama, teşekkür ederim.
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#8)  Haldunc » 25 Şub 2021 09:26

Soruyu biraz daha açarak sormak istiyorum. Çünkü Miraç beyin vermiş olduğu örnek ve kodu benim kod ile bir şekilde entegre edemiyorum.
Şiöyleki Benim programda Kaydet Butonu na bağlı kod aşağıdaki şekilde, Userformda bulunan 128 adet TextBox (Sıralı halde) TextBoxlar doldurulup Kaydet Butonuna bastığımda Sayfa 1 de A2 de TextBox 1 olmak üzere tüm TextBoxlar yanyana sütunlara kaydediliyor. Bu kaydetme esnasında 7. Sütuna (G Sütununa) TextBox7 değeri kaydediliyor. Fakat bunu kaydederken TextBox7 için belirlediğimiz format 0,0000 dan çıkıp örneğin 2,9876 değil de 29.876,000 olarak kaydediyor.
Bu aşamada Miraç beyin vermiş olduğu kodu aşağıdaki jod içine bir yere monte etmem gerekiyor ki 29.876,000 ı tekrar 2,9876 yapsın. Ben aşağıda kırmızı yazan kısma eklemeye çalıştım ama işe yaramadı.
Bu arada
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If TextBox7.Value = "" Then End

TextBox7.Value = Format(CDbl(TextBox7.Value), ("#,##0.0000"))


End Sub

Kodu da işlevsel..Yani mevcut

Commandbutton1 (Kaydet) Butun kodu aşağıda

Private Sub CommandButton1_Click()
Dim i As Long
MsgBox "KAYDETMEK İSTİYORMUSUNUZ"
If CommandButton1.Caption <> "KAYDET" Then GoTo 35
With Range("a65536")
.End(3)(2, 1).Value = TextBox1.Value
For i = 2 To 128
.End(3)(1, i).Value = Controls("TextBox" & i).Value

With Range("A2:A1048576")
.End(3)(1, 7).Value = CDbl(Me.TextBox7.Value)



Next i
End With

i = Empty
35 TextBox1.RowSource = "Sayfa1!a2:a" & Sheets("sayfa1").Range("a65536").End(3).Row


Call Kayit_Degistir


Dim bul As Range
With Range("a65536")
For Each bul In Range("a:a")
If CStr(TextBox1.Value) = CStr(bul.Value) Then
For i = 2 To 128 '
Cells(bul.Row, i).Value = Controls("TextBox" & i).Value
Next i
Exit For
End If
Next bul
i = Empty
Set bul = Nothing
CommandButton2_Click

End With



End Sub
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#9)  Miraç CAN » 25 Şub 2021 09:59

Bu şekilde dener misiniz;
.End(3)(1, i).Value = IIf(i = 7, CDbl(Controls("TextBox" & i).Value), Controls("TextBox" & i).Value)
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 1009
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

Cevap: TextBox Format Sorunu

İleti#10)  Haldunc » 25 Şub 2021 10:13

Tam olarak nereye yerleştirmek gerekiyor bu kodu?
Komple sarıya boyadı tüm satırı "run time error 13, type mismatch" mesajı ile
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#11)  Miraç CAN » 25 Şub 2021 10:18

Kod: Tümünü seç
For i = 2 To 128
    .End(3)(1, i).Value = IIf(i = 7, CDbl(Controls("TextBox" & i).Value), Controls("TextBox" & i).Value)
Next i
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 1009
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

Cevap: TextBox Format Sorunu

İleti#12)  Haldunc » 25 Şub 2021 10:24

Hata veriyor maalesf
Private Sub CommandButton1_Click()
Dim i As Long
MsgBox "KAYDETMEK İSTİYORMUSUNUZ"
If CommandButton1.Caption <> "KAYDET" Then GoTo 35
With Range("a65536")
.End(3)(2, 1).Value = TextBox1.Value


For i = 2 To 128
.End(3)(1, i).Value = IIf(i = 7, CDbl(Controls("TextBox" & i).Value), Controls("TextBox" & i).Value)


Next i
End With



i = Empty
35 TextBox1.RowSource = "Sayfa1!a2:a" & Sheets("sayfa1").Range("a65536").End(3).Row


Call Kayit_Degistir


Dim bul As Range
With Range("a65536")
For Each bul In Range("a:a")
If CStr(TextBox1.Value) = CStr(bul.Value) Then
For i = 2 To 128 '
Cells(bul.Row, i).Value = Controls("TextBox" & i).Value
Next i
Exit For
End If
Next bul
i = Empty
Set bul = Nothing
CommandButton2_Click


End With


End Sub
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#13)  Miraç CAN » 25 Şub 2021 11:06

Böyle durumlarda hata içeriğini de (mesajını) paylaşırsanız daha hızlı sonuç alırız, hatayı tahmin etmek zorunda kalmayız.
Muhtemelen TextBox'larınızda sayısal değer içermeyen veriler var, bu yüzden olabilir.
Bu şekilde deneyin;
Kod: Tümünü seç
For i = 2 To 128
    .End(3)(1, i).Value = Controls("TextBox" & i).Value
    If i = 7 Then .End(3)(1, i).Value = CDbl(Controls("TextBox" & i).Value)
Next i
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 1009
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

Cevap: TextBox Format Sorunu

İleti#14)  Haldunc » 25 Şub 2021 11:23

Merhaba,
Diğer TextBox larda sayısal yanında metinsel ifadelerde yer alacak. TextBox 7 gibi bazı diğerlerinde de 0,0000 format olacağı gibi bazılarında da 0,0000% formatı oacak.
Şu ilk aşamayı bir geçseydik aynı mantıkla diğerlerini de çözerim diye umuyorum. İnşallah çözeriz.

Bu arada son formül sonrası kayıt
2,9564 yerine 29.564,0000 olarak geçti. Hata mesajı yok doğal olarak.
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#15)  Miraç CAN » 25 Şub 2021 11:48

Beyefendi, bölgesel ayarlar, hücre biçim vs. kaynaklı da olabilir,
CDbl() yerine nokta, virgül değişimleri yapıp deneyin;
Replace(Controls("TextBox" & i).Value, ",", ".")
Bu şekilde ya da tam tersi.
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 1009
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

Cevap: TextBox Format Sorunu

İleti#16)  Haldunc » 25 Şub 2021 12:51

Miraç Bey
Maalesef olmadı.

Bu arada sizin gönderdiğiniz Örnek dosyada bazı oynamalar yaptım.
İlk satırda işe yaramadı ama diğer satırlarda eklediğim kod çalıştı gibi. Ama aynı kod benim kodların içinde çalışmıyor.
Private Sub CommandButton1_Click()
Dim i As Long

With Range("a65536")
.End(3)(2, 1).Value = TextBox1.Value
For i = 2 To 4
.End(3)(1, i).Value = Controls("TextBox" & i).Value
Next i
End With
With Range("A2:A65536")
.End(4)(1, 1).Value = CDbl(Me.TextBox1.Value)
.End(4)(1, 4).Value = CDbl(Me.TextBox4.Value)
End With
i = Empty

End Sub


Sanırım kodu yanlış yere koyuyorum.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

Cevap: TextBox Format Sorunu

İleti#17)  Haldunc » 26 Şub 2021 15:10

Bu sorunun çözümünü
Kaydedilen hücrelerde "Hücre Biçimlendirme"yi metin yaparak şimdilik hallettim.

Konu açık kalmasın. Çözüldü diyebilirsiniz.
Teşekkürler.
Kullanıcı avatarı
Haldunc
Siteye Alışmış
 
Adı Soyadı:HALDUN CEYHAN
Kayıt: 21 Oca 2010 18:23
Konum: BURSA
Meslek: ZİRAAT MÜH
Yaş: 58
İleti: 320
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA


Forum TextBox

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe