ר' שואל:
כיצד אפשר לסכם תאים בעלי אותו צבע רקע או אותו צבע פונט?
תשובה:
ניתן לבצע זאת בתוכנת אקסל על ידי הגדרת פונקציות בקוד VBA.
מצ"ב דוגמה:
ניצור קובץ אקסל חדש ונשמור אותו בפורמט XLSM המאפשר הפעלת קוד VBA.
נפתח את עורך VBA על ידי לחיצה על Alt+F11 ונוסיף מודול חדש על ידי סימון Modules לחיצה על לחצן ימני והוסף מודול חדש.
נעתיק את הקוד של הפונקציות SumByColor ו-SumByFontColor.
הפונקציה SumByColor מקבלת כפרמטר טווח תאים בהם יש לסכום את הערכים על פי צבע התא וכפרמטר נוסף תא הצבוע בצבע שיש לסכום.
הפונקציה עוברת על התאים בטווח ובודקת את צבע התא. אם הצבע זהה לצבע שיש לסכום אז הפונקציה סוכמת את הערך בתא.
הפונקציה מחזירה את סך הערכים בתאים שנסכמו.
הפונקציה SumByFontColor מקבלת כפרמטר טווח תאים בהם יש לסכום את הערכים על פי הגופן (פונט) בתא וכפרמטר נוסף תא הצבוע בצבע שיש לסכום.
הפונקציה עוברת על התאים בטווח ובודקת את צבע הגופן בתא. אם הצבע זהה לצבע שיש לסכום אז הפונקציה סוכמת את הערך בתא.
הפונקציה מחזירה את סך הערכים בתאים שנסכמו.
Public Function SumByColor(rngSumRange As Range, cellColor As Range) As Double
Dim sumValue As Double, cell As Range
sumValue = 0
For Each cell In rngSumRange
If cell.Interior.Color = cellColor.Interior.Color Then
sumValue = sumValue + cell.Value
End If
Next cell
SumByColor = sumValue
End Function
Public Function SumByFontColor(rngSumRange As Range, cellColor As Range) As Double
Dim sumValue As Double, cell As Range
sumValue = 0
For Each cell In rngSumRange
If cell.Font.Color = cellColor.Interior.Color Then
sumValue = sumValue + cell.Value
End If
Next cell
SumByFontColor = sumValue
End Function
Dim sumValue As Double, cell As Range
sumValue = 0
For Each cell In rngSumRange
If cell.Interior.Color = cellColor.Interior.Color Then
sumValue = sumValue + cell.Value
End If
Next cell
SumByColor = sumValue
End Function
Public Function SumByFontColor(rngSumRange As Range, cellColor As Range) As Double
Dim sumValue As Double, cell As Range
sumValue = 0
For Each cell In rngSumRange
If cell.Font.Color = cellColor.Interior.Color Then
sumValue = sumValue + cell.Value
End If
Next cell
SumByFontColor = sumValue
End Function

בגיליון אקסל נגדיר בעמודה A רשימת ערכים ונצבע את התאים בצבעים שונים.
בעמודה C נגדיר את הצבעים שעל פיהם יש לבצע את סכימת הערכים.
בתא D2 נגדיר את הנוסחה הבאה SumByColor($A$2:$A$15,C2)
הנוסחה משתמשת בפונקציה SumByColor שהגדרנו ב-VBA וסוכמת את הערכים בטווח A2 עד A15 שצבועים בצבע התא C2 (צהוב).
נעתיק את הנוסחה מתא C2 לתאים C3 עד C5.

בגיליון אקסל נגדיר בעמודה G רשימת ערכים ונצבע את הגופן בתאים בצבעים שונים.
בעמודה I נגדיר את הצבעים שעל פיהם יש לבצע את סכימת הערכים.
בתא J2 נגדיר את הנוסחה הבאה SumByFontColor($G$2:$G$15,I2)
הנוסחה משתמשת בפונקציה SumByFontColor שהגדרנו ב-VBA וסוכמת את הערכים בטווח G2 עד G15 בהם צבע הפונט זהה לצבע בתא I2 (אדום).
נעתיק את הנוסחה מתא J2 לתא J3.
על מנת שהערכים בגיליון יתעדכנו בשינוי צבע תאים או צבע גופן בתאים יש ללחוץ CTRL + ALT + F9.
במקרה של שינוי ערכים בגיליון הנוסחאות יתעדכנו באופן אוטומטי על ידי אקסל.
בברכה,
צוות אניפיט