Dolgu rengi yada fonta göre toplama

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Function BiçimTopla (Aralık, fontindex, dolguindex)
Aralık = mesala a11:a45
fontindex mesala = 2 (beyaz)
interior(dolguindex) ) = 15 (%25 gri)

a11:a45 aralığındaki %25 gri zemin ve beyaz yazı ile yazılmış rakamların toplamını almak isityorum.

ancak dolgu rengi kırmızı, font rengi siyah da olabilir veya dolgu otomatik, font otomatik olur bunlarıda hazır fonksiyonda ben seçecem.

Yardımcı olurmusunuz

Sorun çözmemde ayrdımcı olan @Ali Hocama teşekkür ederim
[quate]
tetiklemiyor zaten hocam ben zaten günlükten tsbye dağıtım yapıyordum çzöümü şu şekilde buldum

İlgili sayfada bir command buton tanımladım (daha doğrusu oraya bağlayacam) modüldeki adını yazdım
Kod:
Private Sub CommandButton1_Click()
test
End Sub
modül sayfasına fonksiyon ve kodları yazdım
Kod:
Function brdrenktopla(Adres As Range, Dolgu_rengi, Font_rengi, islem As Integer)
Dim c As Range
On Error Resume Next
Toplam = 0
If islem = 1 Then
    For Each c In Adres
       If c.Interior.ColorIndex = Dolgu_rengi And c.Font.ColorIndex = Font_rengi And c <> "" Then Toplam = Toplam + c.Value
    Next
End If
brdrenktopla = Toplam
End Function
Sub test()
Set S2 = Sheets("tsb")
S2.Cells(13, 3) = brdrenktopla(S2.[C4:C11], 1, 2, 1) 'al&#305;&#351;
End Sub
&#304;lgili Yeni Sorular:
Kod:
    Selection.Interior.ColorIndex = xlNone
    Selection.Font.ColorIndex = 0
1) durumunu nas&#305;l toplataca&#287;&#305;z hocam ilgili yerelere xlnone,0 yazd&#305;m ama i&#351;e yaramad&#305;
2) herhangi bir renk ile i&#351;aretlenmi&#351; h&#252;creleri ayn&#305; anda toplama imkan&#305; varm&#305;
3) &#304;&#351;lem tipi 1 demi&#351;siniz toplamak i&#231;in peki i&#351;lem tipi = 2 i&#231;in sayma i&#351;elmi atamak i&#231;in nereye ne ilave edece&#287;iz.
4) Kullan&#305;c&#305; tan&#305;ml&#305; fonsiyonlara yard&#305;m eklenebilirmi
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.
Formülde Aralık;Fontindex;Dolguindex giriyorsunuz.:
Kod:
Function BiçimTopla(Aralık, fontindex, dolguindex)
Dim hucre As Range, fonttopla As Long, dolgutopla As Long
For Each hucre In Aralık
    If hucre.Font.ColorIndex = fontindex Then
        fonttopla = fonttopla + 1
    End If
    If hucre.Interior.ColorIndex = dolguindex Then
        dolgutopla = dolgutopla + 1
    End If
    BiçimTopla = "FontIndex= " & fonttopla & " DolguIndex= " & dolgutopla
Next
End Function
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Ekli dosyayı inceleyiniz.
Formülde Aralık;Fontindex;Dolguindex giriyorsunuz.:
Kod:
Function BiçimTopla(Aralık, fontindex, dolguindex)
Dim hucre As Range, fonttopla As Long, dolgutopla As Long
For Each hucre In Aralık
    If hucre.Font.ColorIndex = fontindex Then
        fonttopla = fonttopla + 1
    End If
    If hucre.Interior.ColorIndex = dolguindex Then
        dolgutopla = dolgutopla + 1
    End If
    BiçimTopla = "FontIndex= " & fonttopla & " DolguIndex= " & dolgutopla
Next
End Function
@odion hocam saymıyacam toplayacam anlatamadım herhalde

@Ali ve @yurttas hocam
o linkleri sabahleyin baktım ama sadece font rengine göre toplama vardı

Ayrıca ColorSum lu bir fonsiyon vardı taslak sayfasında kullandım ve taslak makro ile doldurulunca kodlar işlemiyor her seferinde f9 basmak lazım geliyor

aktarma işlmei bittikjtan sonra hadi kendi yapsın diye sayfayı seçtirip calculete yazıyorum gene çalışmıyor
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Sn hsayar verdi&#287;im linkte

Font rengine g&#246;re var,Dolgu rengine g&#246;re var, Kal&#305;n,italik ve alt&#305; &#231;izgili olana g&#246;re var.

Renge g&#246;re toplam adl&#305; sayfa dolgu rengine g&#246;re;
Fontag&#246;retopla sayfa font rengine g&#246;re;
ZeminveFonta g&#246;re topla adl&#305; sayfa t&#252;m&#252;n&#252;de i&#231;erek &#351;ekilde (font rengi,dolgu rengi ,Kal&#305;n,italik ve alt&#305; &#231;izgili ..) toplam al&#305;r.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
@Ali Hocam
Kod:
Function Bicimegoretopla(Referanshucre As Range, Aral&#305;k As Range)
Dim rhucre As Range
Dim Kac&#305;nc&#305; As Boolean
Dim Sonuc

 For Each rhucre In Aral&#305;k
    With rhucre
        Kac&#305;nc&#305; = (Referanshucre.Interior.ColorIndex = _
        .Interior.ColorIndex And _
        Referanshucre.Font.ColorIndex = _
        .Font.ColorIndex And _
        Referanshucre.Font.Bold = _
        .Font.Bold And _
        Referanshucre.Font.Italic = _
        .Font.Italic And _
        Referanshucre.Font.Underline = .Font.Underline)
   End With
         If Kac&#305;nc&#305; = True Then
            Sonuc = WorksheetFunction.Sum(rhucre) + Sonuc
         End If
 Next rhucre

Bicimegoretopla = Sonuc
End Function
Referans h&#252;cre vermeden t&#252;m bi&#231;im &#246;zelliklerini Say&#305;sal girmek isityorum
(Beyaz Font i&#231;in 2) (&#37;25 gri i&#231;in 15) (font tipi i&#231;in kal&#305;n, italik, normal ne girilmesi gerekiyorsa) fonkisyon i&#231;inde ben girecem

ve e&#287;er dolgurengi, fontrengi, fonttipi de&#287;erlerinden bir bo&#351; ise excelin default de&#287;eri olarak kabul etmesini istiyorum
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Function Renktopla(Aral&#305;k As Range, Renk&#304;ndeksi As Integer, _
    Optional Dolgu&#304;ndeksi As Boolean = False) As Double

Dim rng As Range
Dim OK As Boolean

Application.Volatile True
For Each rng In Aral&#305;k.Cells
    If Dolgu&#304;ndeksi = True Then
        OK = (rng.Font.ColorIndex = Renk&#304;ndeksi)
    Else
        OK = (rng.Interior.ColorIndex = Renk&#304;ndeksi)
    End If
    If OK And IsNumeric(rng.Value) Then
        Renktopla = Renktopla + rng.Value
    End If
Next rng
End Function
@Ali Hocam istedi&#287;im tam olarak bu ancak &#351;&#246;yle bir sorun var mevcur zemin rengim siyah ve dolgu rengim beyaz

ben bir h&#252;crenin dolgu rengini k&#305;rm&#305;z&#305; iken siyah yapt&#305;m diyelim...
gittim k&#305;rm&#305;z&#305;ya &#231;evirdim toplam de&#287;i&#351;miyor F9 u tu&#351;luyorum &#246;yle yap&#305;yor
bunun &#231;z&#252;m&#252; ne peki
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
@odion hocam saymıyacam toplayacam anlatamadım herhalde
Ekli dosyayı inceleyiniz.:cool:
Kod:
Function BiçimTopla(Aralık, fontindex, dolguindex)
Dim hucre As Range, fonttopla As Single, dolgutopla As Single
For Each hucre In Aralık
    If hucre.Font.ColorIndex = fontindex Then
        fonttopla = fonttopla + hucre.Value
    End If
    If hucre.Interior.ColorIndex = dolguindex Then
        dolgutopla = dolgutopla + hucre.Value
    End If
    BiçimTopla = "FontIndex= " & fonttopla & " DolguIndex= " & dolgutopla
Next
End Function
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Kod:
Function renktopla(Adres As Range, Dolgu_rengi, Font_rengi, islem As Integer)
Dim c As Range
On Error Resume Next
Toplam = 0
If islem = 1 Then
    For Each c In Adres
       If c.Interior.ColorIndex = Dolgu_rengi And c.Font.ColorIndex = Font_rengi And c <> "" Then Toplam = Toplam + c.Value
       Next
End If
renktopla = Toplam
End Function
Sarı zeminli, kırmızı fontlu olan için

=renktopla(A1:A15;6;3;1) yazınız.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Kod:
@Ali Hocam istediğim tam olarak bu ancak şöyle bir sorun var mevcur zemin rengim siyah ve dolgu rengim beyaz
 
ben bir hücrenin dolgu rengini kırmızı iken siyah yaptım diyelim...
gittim kırmızıya çevirdim toplam değişmiyor F9 u tuşluyorum öyle yapıyor
bunun çzümü ne peki[/quote]
 
 
Sn hsayar,bildiğim kadarı ile font ve zemin renginin değişimi sayfadaki change olayını tetiklemiyor o nedenle calculate olayı gerçekleşince( yani sizin yaptığınız gibi F9 tuşuna basmak) çalışıyor.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Ali hocam ben mesaj&#305; editledim ger&#231;i ama siz konuyla ilgilenmi&#351;siniz.

ben bir h&#252;crenin dolgu rengini k&#305;rm&#305;z&#305; iken siyah yapt&#305;m diyelim...
gittim k&#305;rm&#305;z&#305;ya &#231;evirdim toplam de&#287;i&#351;miyor F9 u tu&#351;luyorum &#246;yle yap&#305;yor
bunun &#231;z&#252;m&#252; ne pek
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
ben bir h&#252;crenin dolgu rengini k&#305;rm&#305;z&#305; iken siyah yapt&#305;m diyelim...
gittim k&#305;rm&#305;z&#305;ya &#231;evirdim toplam de&#287;i&#351;miyor F9 u tu&#351;luyorum &#246;yle yap&#305;yor
bunun &#231;z&#252;m&#252; ne pek.


Sn hsayar,bildi&#287;im kadar&#305; ile font ve zemin renginin de&#287;i&#351;imi sayfadaki change olay&#305;n&#305; tetiklemiyor o nedenle calculate olay&#305; ger&#231;ekle&#351;ince( yani sizin yapt&#305;&#287;&#305;n&#305;z gibi F9 tu&#351;una basmak) &#231;al&#305;&#351;&#305;yor.
______________________________________________
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
tamam ben bu i&#351;lemi G&#252;nl&#252;k sayfas&#305;ndaki a ve b kolanlar&#305;nda uygun de&#287;erelere g&#246;re tsb sayfas&#305;na aktar&#305;yorum
mesala

a kolonunda 12 ve b kolonunda p olanlar&#305;
tsb sayfas&#305;n&#305;n a,b,e kolonlar&#305;na aktar&#305;yorum
a kolonunda 12 ve b kolonunda v olanlar&#305;
tsb sayfas&#305;n&#305;n a,b,e kolonlar&#305;na aktar&#305;yorum
dolgu rengini siyah fontu beyaz yap&#305;yorum

i&#351;lemler bitti&#287;inde kodlar&#305;n alt&#305;na calculete yaz&#305;yorum

yine hesaplam&#305;yor

tsb sayfas&#305;n&#305;n en alt&#305;nda e45 te veresiye olanlar yani dolgusu siyah fontu beyaz olanlar&#305; topla fonksiyonu standart olarak yaz&#305;l&#305; veriler aktar&#305;la&#305;nca sanki ben ona &#246;zel topla dememi&#351;imde ne varsa topla demi&#351;i&#351;im gibi e11:e44 aral&#305;&#287;&#305;n&#305; topluyor

birazdan tsb sayfas&#305;na makro ile de&#287;eri yazd&#305;rmay&#305; deneyecem calculete anlam&#305;n&#305; yitirecek bu durumda bakal&#305;m.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Hangi sayfada iseniz o sayfan&#305;n kodunun i&#231;ine

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
yaz&#305;n&#305;z.

Bu durumda kullan&#305;c&#305; tan&#305;ml&#305; fonsiyonunuz siz de&#287;i&#351;tirdi&#287;inizde &#231;al&#305;&#351;acakt&#305;r.

Not:Font rengini tetiklerken, dolgu rengini tetiklemeyebilir.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
tetiklemiyor zaten hocam ben zaten g&#252;nl&#252;kten tsbye da&#287;&#305;t&#305;m yap&#305;yordum &#231;z&#246;&#252;m&#252; &#351;u &#351;ekilde buldum

&#304;lgili sayfada bir command buton tan&#305;mlad&#305;m (daha do&#287;rusu oraya ba&#287;layacam) mod&#252;ldeki ad&#305;n&#305; yazd&#305;m
Kod:
Private Sub CommandButton1_Click()
test
End Sub
mod&#252;l sayfas&#305;na fonksiyon ve kodlar&#305; yazd&#305;m
Kod:
Function brdrenktopla(Adres As Range, Dolgu_rengi, Font_rengi, islem As Integer)
Dim c As Range
On Error Resume Next
Toplam = 0
If islem = 1 Then
    For Each c In Adres
       If c.Interior.ColorIndex = Dolgu_rengi And c.Font.ColorIndex = Font_rengi And c <> "" Then Toplam = Toplam + c.Value
    Next
End If
brdrenktopla = Toplam
End Function
Sub test()
Set S2 = Sheets("tsb")
S2.Cells(13, 3) = brdrenktopla(S2.[C4:C11], 1, 2, 1) 'al&#305;&#351;
End Sub
Ancak default olan de&#287;erler olna dolguyok ve otomatih h&#252;cre rengi i&#231;in nas&#305;l olacak onuda s&#246;ylerseniz sevinirim.

Kod:
    Selection.Interior.ColorIndex = xlNone
    Selection.Font.ColorIndex = 0
durmunu nas&#305;l toplataca&#287;&#305;z hocam
ilgili yerelere xlnone,0 yazd&#305;m ama i&#351;e yaramad&#305;
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
&#252;stteki mesaj d&#252;zeltilmi&#351;tir.
renk de&#287;i&#351;ti&#287;inde toplam&#305;n hesaplamas&#305; sorunu &#231;&#246;z&#252;lm&#252;&#351;t&#252;r.
font ve dolgu rekleri otamatik iken nas&#305;l olacak sorusu nas&#305;l olacak veya &#351;&#246;yle soray&#305;m
font veya zemin rengi otomatik de&#287;ilde herhani bir yani index de&#287;eri 1>= ve <=56 diye girebilirmiyiz. galiba buda bir y&#246;ntem ama nas&#305;l ?
bu arada kt fonkssiyonumuda koyuk&#305;rm&#305;z yani 9 de&#287;erini toplam&#305;yor tedad&#252;fen deneyeyim dedi.. .asl&#305;nda laz&#305;m de&#287;il ama bilginiz olsun bana siyah,beyaz,k&#305;rm&#305;z&#305;,gr, yeter siyah beyaz&#305; denedim

bir soruda bu forumda bir yeri k&#305;rm&#305;z&#305; yazmak istersem nas&#305;l olacak
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sn necdet hocam sizin kodlar&#305;n&#305;z vastas&#305; ile sorunumu bir &#351;ekilde &#231;&#246;zd&#252;m
&#214;rnek h&#252;crede istedi&#287;im de&#287;eri &#246;&#287;rendim &#246;nce (sizn fonksiyondan uyarlama :) )
Kod:
Public Function ozellik(Ornek_Hucre)
FontRengi = Ornek_Hucre.Font.ColorIndex
DolguRengi = Ornek_Hucre.Interior.ColorIndex
ozellik = "fontrengi= " & FontRengi & " / dolgurengi= " & DolguRengi
End Function
sonu&#231; olarak
Dolgu Rengi Otomatik ve font rengi otomatik ise index de&#287;erlerinin a&#351;a&#287;&#305;daki gibi oldu&#287;unu &#246;&#287;rendim

fontrengi= -4105 / dolgurengi= -4142

Kod:
Function brdrenktopla(Adres As Range, Dolgu_rengi, Font_rengi, islem As Integer)
Dim c As Range
On Error Resume Next
Toplam = 0
If islem = 1 Then
    For Each c In Adres
       If c.Interior.ColorIndex = Dolgu_rengi And c.Font.ColorIndex = Font_rengi And c <> "" Then Toplam = Toplam + c.Value
    Next
End If
brdrenktopla = Toplam
End Function
fonksiyonunda ilgili alanlara yaz&#305;nca sorun ortadan kalkt&#305; siz &#231;akma&#287;&#305; &#231;akd&#305;n&#305;z sa&#287;olun... :)
 

ASMET67

Altın Üye
Katılım
8 Haziran 2007
Mesajlar
410
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
30-11-2027
Dosya silinmiş elinde olan varmıı
 
Üst