Userform'da bulunan Textbox'da yüzde hesaplama

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025

Yapmak istediğim: evet + bazen cevaplarının, hayır cevabının yüzde kaçı olduğunu tespit etmek.


Bunun sonucunu userform'da textbox'da göstermek istiyorum. Her veri eklendiğinde sonuç textbox da yenilenmeli. Yardımcı olursanız sevinirim.

 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
A kolonuna veri eklemeyi hangi kod ile yapıyorsanız aşağıdaki kodu ondan sonra çalışacak şekilde ayarlayınız.

Kod:
Sub Test()
    Dim Say As Long, Hayir As Long
    Say = WorksheetFunction.CountIf(Range("A:A"), "<>") - 1
    Hayir = WorksheetFunction.CountIf(Range("A:A"), "hayır")
    TextBox1.Text = FormatNumber(Hayir / (Say / 100), 2)
End Sub
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam çok teşekkür ederim. Dosyayı biraz daha ayrıntıladım biraz zorlanarak kendi kodlarıma uyarlayabilirim sanırım. Ancak şöyle bir sorun oldu "bazen" cevabını evet cevabı ile değil hayır cevabıyla topluyor sanırım. O yüzden yüzdelik dilim yanlış çıkıyor. Yani şöyle düşünürsek; evet ve bazen cevabı başarılı, hayır cevabı ise başarısız olarak adledersek, aslında görmek istediğim başarı oranıdır.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Sanırım sizin istediğiniz sonuç normal yüzdeden farklı.

5 Evet
4 Bazen
1 Hayır

Şeklinde veri varsa oranlar aşağıdaki gibi olur.

Evet oranı %50
Bazen oranı %40
Hayır oranı %10

Siz yukardaki örneğe göre oranlar kaç olmalıdır diyorsunuz?
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam evet ve bazen cevabını aynı olarak algılamalı. Yani evet + bazen = 9 hayır ise 1. sonuç olarak başarı oranımız %90.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Buton kodları aşağıdaki gibi olmalı.
Kod:
Private Sub CommandButton1_Click()
    Dim Satır As Long
    Dim Say As Long, Basari As Long
    Dim sh As Worksheet
    Set sh = Sheets("sayfa1")
    Satır = Sheets("sayfa1").Range("A65536").End(3).Row + 1
    sh.Cells(Satır, "A") = TextBox2.Text

    Say = WorksheetFunction.CountIf(Range("A:A"), "<>") - 1
    Basari = Say - WorksheetFunction.CountIf(Range("A:A"), "hayır")
    TextBox1.Text = FormatNumber(Basari / (Say / 100), 2)
    
    MsgBox "Veri kaydedildi!", vbInformation, "Bilgi!"
End Sub
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Muzaffer hocam çok teşekkür oldu. Başarı oranını doğru hesaplıyor. Son olarak sormak istediğim textbox içinde % işaretini sabitleyebilir miyiz ? Yani oranımız % 90 olarak görünsün ve kaydetme veya düzeltme butonları ile kodu aktif etme dışında, uygulama açıldığı gibi A sutunundaki bilgileri sayıp textboxa gösterebilir mi ?
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Kodları Initialize alanına ekledim hocam. Açılışta görebiliyorum şimdi değeri.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
O zaman aşağıdaki kodları kullanın.

Kod:
Private Sub CommandButton1_Click()
    Hesapla
    MsgBox "Veri kaydedildi!", vbInformation, "Bilgi!"
End Sub

Private Sub UserForm_Initialize()
    Hesapla
End Sub

Sub Hesapla()
    Dim Satır As Long
    Dim Say As Long, Basari As Long
    Dim sh As Worksheet
    Set sh = Sheets("sayfa1")
    Satır = Sheets("sayfa1").Range("A65536").End(3).Row + 1
    sh.Cells(Satır, "A") = TextBox2.Text

    Say = WorksheetFunction.CountIf(Range("A:A"), "<>") - 1
    Basari = Say - WorksheetFunction.CountIf(Range("A:A"), "hayır")
    TextBox1.Text = FormatPercent(Basari / Say, 2)
End Sub
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Kod:
 Say = WorksheetFunction.CountIf(Range("A:A"), "<>") - 1
    Basari = Say - WorksheetFunction.CountIf(Range("A:A"), "hayır")
    TextBox1.Text = FormatPercent(Basari / Say, 2)
Merhaba hocam ve diğer arkadaşlar. Yukarıdaki kod excel sayfasından işlem yapıyor ve sonucunda yüzdeyi gösteriyor. Ben şuan bu kodun listboxun 6. kolonundaki veriye göre yüzde hesaplama yapmasını istiyorum. 6. kolondaki veri ise excel sayfasında "e" sutununda bulunuyor. Örneğini bulamadım.
 
Son düzenleme:

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Yardım ederseniz sevinirim. Veri sonucunu excel sutunlarından değil de listboxa göre yapmak istiyorum.
 
Üst