• DİKKAT

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

Şarta bağlı toplam sayı alma

neseterkutsesli

Altın Üye
Katılım
12 Ağustos 2011
Mesajlar
402
Excel Vers. ve Dili
Microsoft Office 2019
Windows 11 Home Single Language
Merhaba
B sütünun'da koyu olan tedarikçilerin sayısını formül yada makro yolu ile öğrenebilirmiyim
 

Ekli dosyalar

Merhaba.
Bir modüle kopyalayıp çalıştırın.
Kod:
Sub Test()

    Dim SonSatir As Long
    Dim KoyuSay As Long
    Dim Alan As Range
    SonSatir = Cells(Rows.Count, "B").End(xlUp).Row
    KoyuSay = 0
    For Each Alan In Range("B2:B" & SonSatir)
        If Alan.Value <> "" Then
            If Alan.Font.Bold = True Then
                KoyuSay = KoyuSay + 1
            End If
        End If
    Next Alan
    MsgBox "Koyu hücre sayısı: " & KoyuSay
End Sub
 
Kod:
Function BoldSay(sutun As Range) As Long
    Dim hucre As Range
    For Each hucre In sutun
        If hucre.Font.Bold = True And hucre.Value <> "" Then
            BoldSay = BoldSay + 1
        End If
    Next hucre
End Function

Sonuç göreceğiniz hücreye

Kod:
=BoldSay(B2:B500)

yazın.
 
teşekkür ederim çok sağolun.
 
Muazaffer Hocam,
ek olarak toplam 373 tedarikçi var koyu renk ise 8 satır üzerinde eklemeler olabiliyor yine tüm satırı baz alabiliriz
tıkladığımda 8/373 olarak sonuç almak istiyorum bunu koda yazabilirmiyiz.
 
Muazaffer Hocam,
ek olarak toplam 373 tedarikçi var koyu renk ise 8 satır üzerinde eklemeler olabiliyor yine tüm satırı baz alabiliriz
tıkladığımda 8/373 olarak sonuç almak istiyorum bunu koda yazabilirmiyiz.
Bu açıklamadan bir şey anlamadım.
 
B sütununda toplam 373 tedarikçi var kalın dolgu olan 8 tedarikçi var makro kodunu içine 8/373 olacak şekilde kod revize edebilirmiyiz
 
Örnek dosyada 8 değil 16 tane Kalın metin var.
Buna göre 16/373 oluyor.

Aşağıdaki kodu deneyin.
Kod:
Sub Test()

    Dim SonSatir As Long
    Dim KoyuSay As Long
    Dim Alan As Range
    SonSatir = Cells(Rows.Count, "B").End(xlUp).Row
    KoyuSay = 0
    For Each Alan In Range("B2:B" & SonSatir)
        If Alan.Value <> "" Then
            If Alan.Font.Bold = True Then
                KoyuSay = KoyuSay + 1
            End If
        End If
    Next Alan
    MsgBox "Kalın metin sayısı: " & KoyuSay & vbLf & "Tedarikçi Sayısı: " & (SonSatir - 1) & vbLf & "Bölme sonucu: " & KoyuSay / (SonSatir - 1)
End Sub
 
B sütununda toplam 373 tedarikçi var kalın dolgu olan 8 tedarikçi var makro kodunu içine 8/373 olacak şekilde kod revize edebilirmiyiz

Başkaları da faydalanır sizin pek ilginiz çekmedi sanırım.

Kod:
Function BoldToplamKesir(rng As Range) As String
    Dim c As Range
    Dim boldN As Long
    Dim totalN As Long

    For Each c In rng
         If Len(Trim(CStr(c.Value))) > 0 Then
            totalN = totalN + 1
          
            If c.Font.Bold = True Then
                boldN = boldN + 1
            End If
        End If
    Next c

    If totalN = 0 Then
        BoldToplamKesir = "0/0"
    Else
        BoldToplamKesir = boldN & "/" & totalN
    End If
End Function

Formül aşağıdaki gibi kullanılır.

Kod:
=BoldToplamKesir(B2:B500)
 
Son düzenleme:
Muzaffer hocam teşekkür ederim,
Ali hocam ilginize emeğinize sağlık verdiğiniz kodu kopyaladım ama çalıştıramadım vba'da biraz acemiyim dosyayı ekleyip gönderebilirseniz memnun olurum iyi çalışmalar dilerim.
 
Geri
Üst