• DİKKAT

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

TextBox ve Excel Hücre Görünümü ve Aktarımı

Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Private Sub UserForm_Initialize()
Set s1 = Sheets("alfabe")
TextBox1.Text = s1.Range("B2").Value
TextBox2.Text = s1.Range("B3").Value
End Sub

Çok sayıda TextBox içeren bi UserForm'um bulunmakta ve bu formda yer alan TextBox'lara ondalıklı sayısal değer veya yüzde içeren veriler girilmektedir.

Veriler TextBox'a girilip çıkıldığında ilgili Excel hücresine otomatik olarak verilerin aktarılması sağlanmaktadır.

A) RAKAM OLARAK AKTARMA HATASI
1) TextBox'a veri girişi yapıp çıktığımda yazılan sayısal ifadeyi ondalık ayracı olmadan göstermektedir. (Örnek 1234,5)
Ben TextBox görümünün binlik ayracı (.) ve ondalık ayracı (,) olacak şekilde olmasını ve ayrıca ondalık sayı hanesinin 2 olmasını sağlamak istiyorum, ancak bu durumu yazdığım kod ile bir türlü sağlayamamaktayım. (Örnek 1.234,50) veya (1.234,50 TL)

2) Bu şekilde yaptığım veri girişlerini Excel sayfasına "Metin Olarak Saklanan Sayı" şeklinde aktarmaktadır ve bu durum da Excel'in hesap yapmasına engel olmakta ve matematiksel işlemlerde hata oluşturmaktadır.

*** Bu hatanın giderilmesi için, yani TextBox görüntüsünün (1234,5) yerine (1.234,50) olmasını; Excel ilgili hücreye matematiksel hesapta hata olmaması açısından rakam olarak aktarmasını sağlamak için yukarıda yazılı koda ne şekilde eklemem yapmam gerektiği hususunda bilginizi talep ediyorum.

B) YÜZDE OLARAK AKTARMA HATASI
1) TextBox'a veri girişi yapıp çıktığımda yazılan yüzdelik ifadeyi yazıldığı rakam şeklinde göstermektedir. (Örnek 12)
Ben TextBox görümünün ondalık ayracı (,) olacak şekilde olmasını ve ayrıca ondalık sayı hanesinin 2 veya zaman zaman 3 olmasını sağlamam gerekmekte, ancak bu durumu yazdığım kod ile bir türlü sağlayamamaktayım. (Örnek 12,50 % veya 6,831 %)

2) Bu şekilde yaptığım veri girişlerini (örnek 12) Excel sayfasına (1200,00 %) şeklinde aktarmaktadır. Bu durum ise verinin 100 kat fazlası bir sonuca ulaşmasına ve matematiksel olarak hata oluşmasına neden olmaktadır.

*** Bu nedenle TextBox'a 12 şeklinde yazıldığında görüntünün (12,00 %); 1,5 yazıldığında görüntünün (1,50 %) şeklinde olmasını ve ayrıca Excel ilgili hücrenin (1200,00 %) şeklinde değil, (12,00 %) şeklinde aktarmasını ve matematiksel hesabın bu şekilde yapılmasını istiyorum.

Biraz uzun oldu ama kusuruma bakmayın.

Şimdiden teşekkürler. Kolaylıklar dilerim. Yardımınızı bekliyorum.
 
Aşağıdaki gibi değişiklik yapıp denermisiniz.

TextBox1.Value = s1.Range("B2").Value
TextBox2.Value = s1.Range("B3").Value
 
Merhaba
Aşağıdaki şekilde yapabilirsiniz.


Kod:
TextBox1.Text = FormatNumber(Range("B2").Value, 2)
TextBox2.Text = FormatCurrency(Range("B2").Value, 2)

yüzde hesabı için excel hücresine yazmak istediğiniz yüzdeyi yüz (100)'e bölerek aktarın.

Örnek:

Kod:
Range("A1").value = textbox1.value /100
 
İlginize teşekkür ederim.

Kod'da yer alan Text ibaresini Value yaptığımda da sonuca ulaşamadım. Ancak başka bir yolla dolaşmalı şekilde bu sorunumu çözdüm. Şöyle yaptım, hücreye değeri (.) şeklinde aktarmasını sağladım, sonra (.) değerini bul değiştir ile (,) yaptım, doğal olarak hücre rakama dönüştü, sonrasında da hücre biçimlendirme ile hücre formatını para değeri içeren şekle çevirdim. Sadece uzun oldu.

İkinci sorunum için verilen cevaba da teşekkür ederim. Ancak, UserForm'da çok fazla sayıda TextBox'ım olduğu ve hepsi örnekte verdiğim formatta
TextBox1.Text = s1.Range("B2").Value
olduğu için çok fazla değişiklik yapmadan, bu format üzerinden düzenleme yapmaya çalışıyorum.
Aksi takdirde tamamen baştan başlamam gerekecek ki bu da beni yoracak. Bu nedenle bu format üzerinden hareketle 100 katı aktarmasının önüne nasıl geçebilirim.

Saygılarımla...
 
Geri
Üst