مرحوم محمد محمدی

🖤 پیام تسلیت

با نهایت تأسف و تأثر، باخبر شدیم جناب آقای محمد محمدی با نام کاربری smartman ، از مدیران ارزشمند انجمن اکسل ایران، دار فانی را وداع گفته‌اند.

ایشان سال‌ها با دانش، تجربه، اخلاق نیکو و روحیه کمک به دیگران، سهم بزرگی در رشد و پویایی انجمن داشتند و خاطره حضور ارزشمندشان همواره در ذهن اعضای انجمن باقی خواهد ماند.

مدیریت و اعضای انجمن ExcelIran این ضایعه را به خانواده محترم ایشان، دوستان و تمامی اعضای انجمن تسلیت عرض نموده و از خداوند متعال برای آن مرحوم، رحمت و مغفرت الهی و برای بازماندگان صبر و شکیبایی مسئلت دارند.


انا لله و انا الیه راجعون

مشکل در اجرای ماکروی شمارش رنگ ها

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • sabertb

    • 2014/04/09
    • 347
    • 45.00

    مشکل در اجرای ماکروی شمارش رنگ ها

    سلام خدمت اساتید عزیز
    سوال من در رابطه با کد زیر می باشد. چرا این کد درجا با تغییر رنگ تغییر نمیکند مثلا من یه بازه دارم برای جست و جو یک سلول برای معرفی رنگ وقتی سلول رو مثلا رنگ قرمز معرفی میکنم بعد میرم تو بازه جست و جو رنگ چند سلول اش رو قرمز میکنم جواب نمیدهد و باید داخل فرمول دوباره کلید Enter بزنم تا جواب بده
    کد:
    Function CountColorIf(rSample As Range, rArea As Range) As Long    Dim rAreaCell As Range
        Dim lMatchColor As Long
        Dim lCounter As Long
    
    
        lMatchColor = rSample.Interior.Color
        For Each rAreaCell In rArea
            If rAreaCell.Interior.Color = lMatchColor Then
                lCounter = lCounter + 1
            End If
        Next rAreaCell
        CountColorIf = lCounter
    End Function
    فایل های پیوست شده
    :min10::min18::min13::min22:
  • sabertb

    • 2014/04/09
    • 347
    • 45.00

    #2
    من هرجور تعریف میکنم این مشکل رو دارد روش دوم
    کد:
    Function GetColorCount(CountRange As Range, CountColor As Range)Dim CountColorValue As Integer
    Dim TotalCount As Integer
    CountColorValue = CountColor.Interior.ColorIndex
    Set rCell = CountRange
    For Each rCell In CountRange
        If rCell.Interior.ColorIndex = CountColorValue Then
            TotalCount = TotalCount + 1
        End If
    Next rCell
    GetColorCount = TotalCount
    End Function
    یعنی هر وقت رنگ هارو تغییر میدم تعداد درجا تغییر نمیکنه و نیاز داره من یه بار داخل فرمول Enter بزنم ، جالب اینجاست که فایل های نمونه ای که دانلود کردم با این کد ها درجا کار میکنه
    فایل های پیوست شده
    :min10::min18::min13::min22:

    کامنت

    • Amir Ghasemiyan

      • 2013/09/20
      • 4600
      • 100.00

      #3
      سلام دوست عزيز
      علت اينه كه فانكشن زماني اجرا ميشه كه شما تغييري در محتويات سلول ها اعمال كنيد. تغيير رنگ دادن تاثيري در اين قضيه نداره.
      اون فايلي كه ميگيد بطور اتومات اجرا ميكنه رو بذاريد بررسي كنم.

      کامنت

      • sabertb

        • 2014/04/09
        • 347
        • 45.00

        #4
        نوشته اصلی توسط Amir Ghasemiyan
        سلام دوست عزيز
        علت اينه كه فانكشن زماني اجرا ميشه كه شما تغييري در محتويات سلول ها اعمال كنيد. تغيير رنگ دادن تاثيري در اين قضيه نداره.
        اون فايلي كه ميگيد بطور اتومات اجرا ميكنه رو بذاريد بررسي كنم.
        همین فایل آخری که گذاشتم این طور عمل میکنه ، در جا شمارش رنگ هارو انجام میده
        :min10::min18::min13::min22:

        کامنت

        چند لحظه..