• DİKKAT

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

bir sütunda hücre rengi yeşil olan ve ençok olan çok

snx111

Banned
Katılım
10 Ağustos 2010
Mesajlar
789
Excel Vers. ve Dili
2010 office tr
stunda sadece yeşil ve normal beyaz olan hücrelerim var 4000 adet bagzıları yeşil ve yeşil olanların içinde oranlar yazıyor 1,05 den 10,00 ra kadar karışık olarak ;

isityorumki bu stundaki hücre dolgu rengi yeşil olan ve değişik sayılar yazılı bu hücreler içindeki en çok yazılmış olanı bulması acaba 1,85 mi çok 1,05 mi 1,25 mi

olay budur
 
Merhaba,

Aşağıdaki kullanıcı tanımlı fonksiyonu denermisiniz.

Kullanım şekli;

Kod:
=ENÇOKOLANRENKLİ(Aralık;Renk Kodu)

Kod:
Option Explicit
 
Function ENÇOKOLANRENKLİ(Veri As Range, Renk As Byte)
    Dim My_Range As Range, Dizi() As Variant
    Dim X As Long, WF As WorksheetFunction, Sayfa As String
    
    Application.Volatile True
    
    Set WF = WorksheetFunction
    Sayfa = Veri.Parent.Name
    ReDim Dizi(1 To 1)
    
    For Each My_Range In Veri
        If Sheets(Sayfa).AutoFilterMode Then
            If My_Range.RowHeight > 0 And My_Range.Interior.ColorIndex = Renk Then
                X = X + 1
                ReDim Preserve Dizi(1 To X)
                Dizi(X) = CDbl(My_Range.Text)
            End If
        End If
    Next
    
    If X > 0 Then ENÇOKOLANRENKLİ = WF.Mode(WF.Transpose(Dizi))
    Set WF = Nothing
End Function
 
çalıştı bunu 1 ci 2 ci 3 cü 4 cü ye kadar nasıl yaparız
 
biraz geliştirip filtre edilmiş hücrelerde de çalışmasını sagladım


Function ENÇOKOLANRENKLİ(Veri As range, Renk As Byte)
Dim hucre As range, Dizi() As Variant, X As Long, WF As WorksheetFunction
'filte modu aktif ben yaptım
Set WF = WorksheetFunction
ReDim Dizi(1 To 1)

For Each hucre In Veri
If ActiveSheet.AutoFilterMode = True Then
If hucre.Rows.Hidden = False Then
If hucre.Interior.ColorIndex = Renk Then
X = X + 1
ReDim Preserve Dizi(1 To X)
Dizi(X) = hucre.Value

End If
End If
End If
Next

If X > 0 Then ENÇOKOLANRENKLİ = WF.Mode_Mult(WF.Transpose(Dizi))
Set WF = Nothing
End Function
 
Merhaba,

Filtre modunda çalışması için üstteki mesajımdaki kodu güncelledim.

Siz "Activesheet" kullanmışsınız. Bu şekilde hatalı olur. Farzedin ki verilerle formüller ayrı sayfada bu durumda "Activesheet" ifadesi size doğru sonucu vermez.
 
Geri
Üst