פורום שאלות ותשובות

ברוכים הבאים לפורום שאלות ותשובות באופיס

ניתן לשאול שאלות טכניות באקסל, וורד, פאורפוינט, אוטלוק, שיירפוינט ושאר יישומי אופיס ללא צורך להירשם וללא עלות

ר' שואל:

כיצד אפשר לסכם תאים בעלי אותו צבע רקע או אותו צבע פונט?
 
תשובה:
 
ניתן לבצע זאת בתוכנת אקסל על ידי הגדרת פונקציות בקוד 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
 
 
 
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
בגיליון אקסל נגדיר בעמודה 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.
במקרה של שינוי ערכים בגיליון הנוסחאות יתעדכנו באופן אוטומטי על ידי אקסל.
 
 
 
בברכה,
צוות אניפיט