• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Texbox sayı formatı ve sayı formatının kodlaması hk,

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

TiOr

Excel Dostu
Katılım
26 May 2022
Mesajlar
236
Çözümler
23
Aldığı beğeni
210
Excel V
Office 2016 TR
Konu Sahibi
Merhabalar,

Aşağıdaki ekranlarda da göreceğiniz üzere; paylaştığım kod ile otomatik bölme işlemi hesabını yaptırıyorum.
Fakat buradaki format "0.0##" örneğin 100,0/200,0/300,0/428,571/461,538/ gibi ondalıklı rakamlar veriyor.
Olması gereken ise alt tabloda da göreceğiniz üzere 3 haneli olarak yuvarlaması yönündedir.
"0.0##" bu formatı nasıl değiştirir isem istediğim formatta işlem yaptırabilirim?

1676366844083.png

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

İlaveten;

Texbox üzerinden kayıt işlemi yaptığımda saatlerde şöyle bir problem oluyor tam saatleri normal işliyor fakat yarım saat aralıklarında hata veriyor sayıya dönüştür diyor. Burada araya , yerine . koyduğumda ise yukarda bahsettiğim bölme hesaplamasını texboxta yanlış hesaplıyor. Araya . koyduğumda hata vermeden excele düzgün atıyor fakat bu seferde hesaplama yanlış olduğu için tutarsızlık oluyor. Bu konuda da kıymetli desteklerinizi talep ederim.

1676367399036.png


1676366306417.png
1676366369733.png
1676366400357.png

Desteklerinizi talep eder, iyi çalışmalar dilerim.
Syg,
 
Çözüm
azraep ve Caylak Hocam,
Destekleriniz ve bilgilendirmeniz için teşekkür ederim.
Sorunumu aşıdaki ekranda da göreceğiniz üzere seçenekler/formüller/hata denetimi/arka planda hata denetimini etkinleştir tikini kaldırdım.
Dolayısı ile hata almıyorum.
Sorun kökten çözüldü :)
İyi akşamlar...


Ekran Alıntısı.JPG
If TextBox39 <> Empty And TextBox40 <> Empty Then TextBox41 = Format(WorksheetFunction.Round(TextBox39 / TextBox40, 3), "0.0##")
kodunuzu
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
şeklinde dener misiniz
 
Konu Sahibi
If TextBox39 <> Empty And TextBox40 <> Empty Then TextBox41 = Format(WorksheetFunction.Round(TextBox39 / TextBox40, 3), "0.0##")
kodunuzu
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
şeklinde dener misiniz
azraep Hocam Selam,
Herhangi bir değişiklik olmadı.
Aynı durum devam ediyor. Paylaştığınız kodda round / roundup değişikliği görüyorum. Hiç bir etkime tepkime olmadı.
 
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

buna uyguladım ve çalışıyor
 
Konu Sahibi
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

buna uyguladım ve çalışıyor
azraep hocam;

Aynısını uyguluyorum fakat yarım saat aralıklarında problem devam ediyor.
Tam saatlerde problem yok, çözemedim bir türlü şaştım kaldım...
Görselde bulunan sarı ünlem işaretine tıklıyorum sayıya dönüştür demek durumunda kalıyorum. Direk kayıt sonrası sayıya dönüştürülmüş olması gerekiyor 1,2/2,5/3,5/4,5/5,5/6,5/7,5 vs... bu yarım saatlik dilimlerde sayı olarak görmüyor texboxtan aktardıktan sonra...

1676404267088.png
1676404300486.png
 
Merhabalar,
Probleminiz tamamen tür dönüşümlerinden kaynaklı, bunu kendi bilgisayarınızda çözebilirsiniz sadece, bizim bilgisayarımızdaki ondalık ve binlik ayracına göre çalışan hesaplama, sizin ondalık ve binlik ayraçlarınız farklı olduğu için hata verecektir.
Şöyle özetleyeyim,
Textbox'a bir değer giriyorsunuz.
Bu değer aksini belirtmezseniz "string" formatındadır.
Hesaplama yapmadan önce Textbox değerini "Cdbl" ya da "Cint" ile double ya da integer formatına çevirmeniz gerekir.
15,10 textbox değeri normalde "15,10" algılanırken Cdbl(textbox) dediğimizde 15,1 Cint(textbox) dediğimizde 15 olarak algılanacaktır.
Hesaplama bittikten sonra sonucu excele aktardığımızda, aktarılan değer aksini belirtmezsek genel olarak algılanır. Bu da karışıklığa neden olacaktır.
ExcelHücresi=Cdbl(HesaplamaSonucu) olarak aktarırsak yine dönüşümü yaptığımız için problem kalmayacaktır.

Tavsiye olarak, hesaplama yaparken değişken tanımları yaparak değerleri bu değişkenler üzerinden oluşturun.
Textbox1=Budur demek yerine;
Dim a=double
a=Textbox1.value
şekline tanımlama yaparsanız, textbox değeri a'ya atanırken double olarak belirlenecek ve hesaplama içerisinde sorun yaratmayacaktır.
Özetle;
Vba Değişken tanımları ve tür dönüşümleri olarak araştırabilirsiniz.
 
Konu Sahibi
azraep ve Caylak Hocam,
Destekleriniz ve bilgilendirmeniz için teşekkür ederim.
Sorunumu aşıdaki ekranda da göreceğiniz üzere seçenekler/formüller/hata denetimi/arka planda hata denetimini etkinleştir tikini kaldırdım.
Dolayısı ile hata almıyorum.
Sorun kökten çözüldü :)
İyi akşamlar...


Ekran Alıntısı.JPG
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst