TextBox ile ListBox Üzerinde Sayı Gösterme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

bilisim2010

Kullanıcı
Katkı: %0
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
merhaba textbox a sayfamdan veri çağırıyorum verilerin tutarlarını 235.656 değilde 235.6565652 olarak getiriyor bunu 235.656 olarak getirmesi için initializeye ne yazmam gerekir
 
Çözüm
Merhaba, başlığın ilk harfte görünüp ikinci harfte kaybolmasının nedeni, A13'ten okunan başlık satırının da arama filtresine girmesidir. "S" yazıldığında "Stok Adı" başlığı da S harfini içerdiği için listede kalır; "SR" yazıldığında başlıkta SR geçmediği için elenir. Başlık satırını filtreden ayırıp her aramada listenin ilk satırına sabit olarak eklemek sorunu çözer. UserForm1 kod sayfasındaki TextBox1_Change, ComboBox1_Change ve ComboBox2_Change yordamlarını silip yerine aşağıdaki kodu yapıştırmanız yeterlidir; tutar sütunlarındaki üç ondalık basamaklı biçim de koda eklenmiştir.
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (3 satır). Giriş Yap
Sn. @bilisim2010

TextBox'a sadece userformun açılışında bir veri alıyorsanız ve TextBox içeriği hiç değişmeyecekse Inıtalize olayına,
yok eğer userformu kullanırken içeriği değiştiriliyorsa, bu verinin TextBox'a alınması sırasında şöyle bir işlem yaparak deneyin.

TextBox1.Value = Format( aldığınız sayısal veri , "#,##0")
 
Sn. @bilisim2010

TextBox'a sadece userformun açılışında bir veri alıyorsanız ve TextBox içeriği hiç değişmeyecekse Inıtalize olayına,
yok eğer userformu kullanırken içeriği değiştiriliyorsa, bu verinin TextBox'a alınması sırasında şöyle bir işlem yaparak deneyin.

TextBox1.Value = Format( aldığınız sayısal veri , "#,##0")
ömer bey ben yanlış ifade etmişim textbox ile yazacağıma texbox a veri çağırıyorum yazmışım textbox ile listbox a aşağıdaki formül ile stok adına göre sayfadan veri çekiyorum rakamları yuvarlamıyor demek istiyorum excel boyutu biraz fazla olduğundan buraya atamadım kusura bakmayın ekte dosyada gördüğünüz gibi tutarları küsüratlı getiriyor listboxa örneğin en baştaki 274.150 olması lazım yanındaki diğer rakamlar fazlalık

Private Sub TextBox1_Change()
Dim S1 As Worksheet, Veri As Variant, Son As Long
Dim Ad As String, aranan As String, X As Long, say As Long

Set S1 = Sheets("Sheet3")

Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
Veri = S1.Range("A14:M" & Son).Value

ReDim liste(1 To UBound(Veri, 2), 1 To 1)

On Error Resume Next
ListBox1.Clear
ListBox1.RowSource = ""
On Error GoTo 0

If TextBox1 <> "" Then
For X = LBound(Veri) To UBound(Veri)
Ad = UCase(Replace(Replace(Veri(X, 2), "ı", "I"), "i", "İ"))
aranan = UCase(Replace(Replace(TextBox1, "ı", "I"), "i", "İ"))
If Ad Like "*" & aranan & "*" Then
say = say + 1
For Y = 1 To UBound(Veri, 2)
ReDim Preserve liste(1 To UBound(Veri, 2), 1 To say)
liste(Y, say) = Veri(X, Y)
Next
End If
Next
If say > 0 Then
ListBox1.ColumnCount = 13
ListBox1.ColumnWidths = "75;380;75;75;75;75;120;75;75;75;75;75;75;75"
ListBox1.ColumnHeads = False
ListBox1.Column = liste

End If
Else


End If
End Sub
 

Ekli dosyalar

  • Adsız.webp
    Adsız.webp
    44 KB · Gösterim: 164
Sn. @bilisim2010

TextBox'a sadece userformun açılışında bir veri alıyorsanız ve TextBox içeriği hiç değişmeyecekse Inıtalize olayına,
yok eğer userformu kullanırken içeriği değiştiriliyorsa, bu verinin TextBox'a alınması sırasında şöyle bir işlem yaparak deneyin.

TextBox1.Value = Format( aldığınız sayısal veri , "#,##0")
ömer bey birde bu formülde başlık ilk harfi yazınca geliyor ama 2. ve 3. harfleri yazınca başlık kayboluyor bunu nasıl düzeltirim

Private Sub TextBox1_Change()
Dim S1 As Worksheet, Veri As Variant, Son As Long
Dim Ad As String, aranan As String, X As Long, say As Long

Set S1 = Sheets("Sheet3")

Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
Veri = S1.Range("A14:M" & Son).Value

ReDim liste(1 To UBound(Veri, 2), 1 To 1)

On Error Resume Next
ListBox1.Clear
ListBox1.RowSource = ""
On Error GoTo 0

If TextBox1 <> "" Then
For X = LBound(Veri) To UBound(Veri)
Ad = UCase(Replace(Replace(Veri(X, 2), "ı", "I"), "i", "İ"))
aranan = UCase(Replace(Replace(TextBox1, "ı", "I"), "i", "İ"))
If Ad Like "*" & aranan & "*" Then
say = say + 1
For Y = 1 To UBound(Veri, 2)
ReDim Preserve liste(1 To UBound(Veri, 2), 1 To say)
liste(Y, say) = Veri(X, Y)
Next
End If
Next
If say > 0 Then
ListBox1.ColumnCount = 13
ListBox1.ColumnWidths = "75;380;75;75;75;75;120;75;75;75;75;75;75;75"
ListBox1.ColumnHeads = False
ListBox1.Column = liste

End If
Else


End If
End Sub
 
Mesaj metninde;
-- KOD paylaşmak için, cevap yazma alanının hemen üstündeki </> simgesini,
-- FORMÜL paylaşmak için ise cevap yazma alanının hemen üstündeki f(x) simgesini kullanırsanız iyi olur.

Bu tür sorularınızı; kod vererek değil, kodların içerisinde olduğu,
paylaşılmasında sakınca olabilecek özel bilgilerin olmadığı (bunların yerine iç tutarlılığı olan başka veriler yazarsınız)
örnek belge üzerinden sormanızda yarar var.
 
Mesaj metninde;
-- KOD paylaşmak için, cevap yazma alanının hemen üstündeki </> simgesini,
-- FORMÜL paylaşmak için ise cevap yazma alanının hemen üstündeki f(x) simgesini kullanırsanız iyi olur.

Bu tür sorularınızı; kod vererek değil, kodların içerisinde olduğu,
paylaşılmasında sakınca olabilecek özel bilgilerin olmadığı (bunların yerine iç tutarlılığı olan başka veriler yazarsınız)
örnek belge üzerinden sormanızda yarar var.
tamamdır baran bey şimdi örnek dosyayı hazırlayayım ozaman yeni boş bir excele
 
Mesaj metninde;
-- KOD paylaşmak için, cevap yazma alanının hemen üstündeki </> simgesini,
-- FORMÜL paylaşmak için ise cevap yazma alanının hemen üstündeki f(x) simgesini kullanırsanız iyi olur.

Bu tür sorularınızı; kod vererek değil, kodların içerisinde olduğu,
paylaşılmasında sakınca olabilecek özel bilgilerin olmadığı (bunların yerine iç tutarlılığı olan başka veriler yazarsınız)
örnek belge üzerinden sormanızda yarar var.
merhaba baran bey dosya ektedir stok ara ile SR yazsanız listboxa geliyor veriler oradaki tutarları yuvarlamak istiyorum tek istediğim bu tşkler
 

Ekli dosyalar

@bilisim2010
TextBox1_Change kod blokunda ilgili satırı şöyle değiştirin.
liste(Y, say) = Format(Veri(X, Y), "#,##0")
tamam istediğim gibi oldu yalnız yan taraftaki depolar da noktadan sonra 3 haneye çıktı onları tek hane olarak nasıl gösterebilirim? ayrıca A13 yapıp başlıktan aldığımda ilk harfi arattığımda başlıklar geliyor ancak 2. veya 3. harfi yazdığımda başlıklar kayboluyor...
 
"noktadan sonra 3 haneye çıktı" kısmını anlamadım.
Durumu görebilmem için ekran görüntüsü ekleyin ki anlayabileyim.

Denemelerinizi eklediğiniz örnek belge üzerinde yapıyorsunuz değil mi?
Çünkü ben bir sorun göremiyorum.
 
"noktadan sonra 3 haneye çıktı" kısmını anlamadım.
Durumu görebilmem için ekran görüntüsü ekleyin ki anlayabileyim.

Denemelerinizi eklediğiniz örnek belge üzerinde yapıyorsunuz değil mi?
Çünkü ben bir sorun göremiyorum.
Evet örnek belge ile yapıyorum sayfadan bu depoları gizlemişim açabilirsiniz depo verileri ondalık kesirli değil tamsayı
 

Ekli dosyalar

  • Adsız.webp
    Adsız.webp
    158.5 KB · Gösterim: 135
Benim bilgisayarımdaki ekran görüntüsü şöyle:

1675338085483.webp
 
Benim bilgisayarımdaki ekran görüntüsü şöyle:

1675338085483.png
hocam ben virgülü nokta yapıyorum verdiğiniz formüldeki virgülü nokta yapınca küsüratlarda çıkıyor bana lazım olan küsüratlı rakamlar yani 1. stok 961 değilde 961.280 çıkması lazım nokta yapınca çıkıyor ama stok kodu yada depolarıda noktadan sonra 000 diye gösteriyor benim resimde olduğu gibi
 
yav sen yanlış anlarmısın hocam sen adammmmsın adam çok teşekkür ederim elazığdan sevgiler
hocam son bir sorum daha olucak çok özür dilerim aslında yazmıştım sanırım görmediniz bu textbox ile ararken ilk harfi yazınca başlık geliyor A13 den alırken 2. harfde başlık kayboluyor onu nasıl düzeltiriz aynı örnekten formüldeki Veri = S1.Range("A14:M" & Son).Value A13:M yaparsanız başlık gelir test için
 
Merhaba, başlığın ilk harfte görünüp ikinci harfte kaybolmasının nedeni, A13'ten okunan başlık satırının da arama filtresine girmesidir. "S" yazıldığında "Stok Adı" başlığı da S harfini içerdiği için listede kalır; "SR" yazıldığında başlıkta SR geçmediği için elenir. Başlık satırını filtreden ayırıp her aramada listenin ilk satırına sabit olarak eklemek sorunu çözer. UserForm1 kod sayfasındaki TextBox1_Change, ComboBox1_Change ve ComboBox2_Change yordamlarını silip yerine aşağıdaki kodu yapıştırmanız yeterlidir; tutar sütunlarındaki üç ondalık basamaklı biçim de koda eklenmiştir.
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (61 satır). Giriş Yap
Kod nasıl çalışır?
  1. Veriler A13:M aralığından okunur; dizinin ilk satırı başlık satırıdır.
  2. Başlık satırı, arama yapılmadan listenin ilk satırına yazılır. Bu nedenle eşleşen kayıt olduğu sürece kaç harf yazılırsa yazılsın başlık yerinde kalır.
  3. Arama dizinin 2. satırından, yani sayfadaki 14. satırdan başlar; B sütunundaki stok adında aranan metin geçen satırlar listeye eklenir.
  4. C ile G arasındaki tutar sütunları "#,##0.000" biçimiyle gösterilir; stok kodu ve depo sütunları olduğu gibi kalır.
  5. Eşleşen satır yoksa veya TextBox1 boşaltılırsa liste temizlenir.
  6. Aynı arama kodu üç ayrı yordamda tekrar edilmek yerine ListeyiDoldur yordamından çağrılır. ComboBox seçimi değiştiğinde B6 veya B7 güncellenir ve liste yeni iskonto tutarlarıyla yeniden dolar.
Notlar
  • ColumnHeads = False olarak kalmalıdır. ListBox'ın kendi başlık alanı yalnız RowSource ile çalıştığı için başlık burada listenin ilk satırı olarak eklenir.
  • Başlık satırı listede seçilebilen bir satırdır. İleride ListBox1_Click gibi bir seçim kodu eklenirse ListIndex değeri 0 olan satırın atlanması gerekir.
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst