• DİKKAT

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

ComboBoxta seçilen veriye göre TextBox'ta yüzde hesaplama

Katılım
10 Kasım 2005
Mesajlar
7
Herkese Merhabalar,
Ekteki çalışmamda, ComboBox4’deki bir kişiyi seçtiğim zaman Exceldeki DATA sayfasında, seçtiğim kişinin E sütununa denk gelen “POLİÇELEŞTİ, YAPILAMADI, ACENTE,…vs” verilerinde, “POLİÇELEŞTİ+YAPILAMADI” nın “POLİÇELEŞTİ, YAPILAMADI, ACENTE,…vs” ye oranını TextBox5 içinde % olarak nasıl gösterebiliriz ?

Örnek: ComboBox4’de ARİF seçili ve ARİF’in 4 adet POLİÇELEŞTİSİ, 2 adet YAPILAMADISI var, 4 adet de diğerlerinden, TextBox5’te %60 yazacak.

Örnek:ComboBox4’de TÜMÜ seçili, toplamda 8 adet POLİÇELEŞTİ 2 adet YAPILAMADI ve 10 adet de diğerleri var, TextBox5’de %50 yazacak.

Umarım açıklayabilmişimdir.Yardımcı olacak arkadaşlara şimdiden teşekkürler.
 

Ekli dosyalar

Merhabalar,

UserForm modülüne aşağıdaki prosedürü ilave ediniz.


Kod:
Private Sub ComboBox4_Change()
    Dim rngBul As Range
    Dim sAdr As String
    Dim i%, x%
    
    With Sheets("DATA")
        
        If ComboBox4 = "TÜMÜ" Then
            For i = 2 To .Cells(65536, 5).End(xlUp).Row
                If .Cells(i, 5) = "POLİÇELEŞTİ" Or _
                    .Cells(i, 5) = "YAPILAMADI" Then
                    x = x + 1
                End If
            Next i
            
            On Error Resume Next
            TextBox5 = Format((x / (.Cells(65536, 5).End(xlUp).Row - 1)) * 100, "0")
        
        Else
            Set rngBul = .Columns(6).Find(ComboBox4, lookat:=xlWhole)
            If Not rngBul Is Nothing Then
                sAdr = rngBul.Address
                Do
                    i = i + 1
                    If rngBul.Offset(0, -1) = "POLİÇELEŞTİ" Or _
                        rngBul.Offset(0, -1) = "YAPILAMADI" Then
                        x = x + 1
                    End If
                    
                    Set rngBul = .Columns(6).FindNext(rngBul)
                
                Loop Until rngBul Is Nothing Or sAdr = rngBul.Address
            End If
            
            On Error Resume Next
            TextBox5 = Format((x / i) * 100, "0")
        End If
        
        If Err <> 0 Then TextBox5 = "#HATA!"
        
    End With
    
End Sub

Not : UserForm'un Activate olayına yazdığınız kod çok gereksiz ve boşuna bellek yiyor... Silinmesini tavsiye ederim.

.
 
Yardımlarınız için çok teşekkür ederim Ferhat Bey.Çalışmalarınızda başarılar dilerim.
 
Geri
Üst