PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزشي: ساختن تابع جديد : جمع زدن سلولهاي همرنگ بوسيله vb بدون ستونهاي كمكي



misammisam
2014/10/08, 01:18
باسلام
بعضي وقتها طبق شكل زير ما تعدادي داده داريم كه با رنگهاي مشخص طبقه بندي شدن و حالا احتياج داريم روي اين اطلاعات ، عملياتهايي مثل جمع زدن انجام بديم ، البته با شرط رنگ خود سلول كه داده درش قرار داره .
مثلا جمع سلولهاي فقط قرمز رنگ رو احتياج داريم .
4805

براي اين كار يك ماژول در قسمت vb ساخته و كد زير رو داخلش مينويسيم .

Function SumByColor(CellColor As Range, rRange As Range)
Dim cSum As Long
Dim ColIndex As Integer
ColIndex = CellColor.Interior.ColorIndex
For Each cl In rRange
If cl.Interior.ColorIndex = ColIndex Then
cSum = WorksheetFunction.Sum(cl, cSum)
End If
Next cl
SumByColor = cSum
End Function

حالا وارد خود محيط اكسل ميشويم ، ميبينيد كه يك تابع به اسم SumByColor در قسمت توابع اضافه شده ، اين تابع داراي دو قسمت است ، قسمت اول CellColor كه يك سلول حاوي رنگ مورد نظر انتخاب و قسمت دوم RRange كه كل محدوده مورد نظر جهت جمع زدن انتخاب ميشود .
دقت كنيد در صورتي كه رنگ سلول مرجع يا سلولهاي محدوده كلي رو عوض كرديد ، روي سلول فرمول دابل كليك كنيد و اينتر رو بزنيد كه فرمول رفرش بشود و محاسبات اعمال بگردد .

arash20031382
2014/10/13, 09:18
سلام
آیا فرمولی برای میانگین گرفتن از سلول های همرنگ وجود دارد ؟

misammisam
2014/10/14, 02:03
سلام
آیا فرمولی برای میانگین گرفتن از سلول های همرنگ وجود دارد ؟
همين فرمولو تغيير بدي ميتوني هر تابعي كه خواستي بنويسي ، جمع ، ميانگين و غيره
اين قسمتو بايد عوض كنيد

cSum = WorksheetFunction.Sum(cl, cSum)

سیر
2014/11/04, 23:03
عالی بود . مرسی

kazem1359
2019/06/07, 11:42
سلام ایا در اموزش بیان شده راهی وجود داره که اگر رنگ سلول تغییر کرد جمع هم به صورت خودکار تغییر کنه و نیازی به رفرش سلول دارای فرمول نباشه؟