رنگ شدن سلول های یک ردیف بر اساس رنگی بودن یک سلول

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

    • 2018/06/08
    • 28
    • 54.00

    پرسش رنگ شدن سلول های یک ردیف بر اساس رنگی بودن یک سلول

    با سلام خدمت اساتید معزز
    می خوام زمانی که رنگ سلولی در ستون k قرمز بود سلول های همان ردیف در ستون های j تا a هم قرمز بشه(یعنی تمام سلول های هم ردیف افقی در ستونهای a تا k قرمز بشه) ضمن اینکه کلا 34 ردیف اطلاعات دارم
    اگه کمکم کنید ممنون میشم
  • M_ExceL

    • 2018/04/23
    • 677

    #2
    نوشته اصلی توسط mahdi63
    با سلام خدمت اساتید معزز
    می خوام زمانی که رنگ سلولی در ستون k قرمز بود سلول های همان ردیف در ستون های j تا a هم قرمز بشه(یعنی تمام سلول های هم ردیف افقی در ستونهای a تا k قرمز بشه) ضمن اینکه کلا 34 ردیف اطلاعات دارم
    اگه کمکم کنید ممنون میشم
    سلام
    از کد زیر استفاده کنید :
    کد:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("k1:k34")) Is Nothing Then
    On Error Resume Next
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    For i = 1 To 34
    For c = 1 To 10
    If Cells(i, 11).Interior.Color = RGB(255, 0, 0) Then
    Cells(i, c).Interior.Color = RGB(255, 0, 0)
    Else
    Cells(i, c).Interior.ColorIndex = 0
    End If
    Next c
    Next i
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End If
    End Sub
    فایل نمونه رو ببینید بعد از تغییر رنگ در ستون k روی یکی از سلول ها در ستون k کلیک کنید تا نتیجه رو ببینید.
    فایل های پیوست شده
    [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
    [/CENTER]

    کامنت

    • mahdi63

      • 2018/06/08
      • 28
      • 54.00

      #3
      نوشته اصلی توسط M_ExceL
      سلام
      از کد زیر استفاده کنید :
      کد:
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Intersect(Target, Me.Range("k1:k34")) Is Nothing Then
      On Error Resume Next
      Application.EnableEvents = False
      Application.ScreenUpdating = False
      For i = 1 To 34
      For c = 1 To 10
      If Cells(i, 11).Interior.Color = RGB(255, 0, 0) Then
      Cells(i, c).Interior.Color = RGB(255, 0, 0)
      Else
      Cells(i, c).Interior.ColorIndex = 0
      End If
      Next c
      Next i
      Application.ScreenUpdating = True
      Application.EnableEvents = True
      End If
      End Sub
      فایل نمونه رو ببینید بعد از تغییر رنگ در ستون k روی یکی از سلول ها در ستون k کلیک کنید تا نتیجه رو ببینید.
      سلام
      بسیار ممنون از راهنمایی تون
      اما هنوز دو تا مشکل داره
      1- حتما باید بعد از تغییر رنگ سلول بر سلولی از ستون k کلیک بشه با اعمال تغییرات صورت بگیره و اگه بر سلول های یک ستون دیگه کلیک بشه تغییر اعمال نمیشه!
      2- اگه قبلا سلولی از ستون k دارای رنگ قرمز باشد حتی با کلیک بر سلول های ستون k هم دستور اعمال نمی شه و باید دوباره رنگ سلول قرمز رو قرمز کنی تا بعد از کلیک بر سلولی از ستون k کد کار کنه
      امکان رفع این دو مشکل وجود داره؟

      کامنت

      • M_ExceL

        • 2018/04/23
        • 677

        #4
        نوشته اصلی توسط mahdi63
        سلام
        بسیار ممنون از راهنمایی تون
        اما هنوز دو تا مشکل داره
        1- حتما باید بعد از تغییر رنگ سلول بر سلولی از ستون k کلیک بشه با اعمال تغییرات صورت بگیره و اگه بر سلول های یک ستون دیگه کلیک بشه تغییر اعمال نمیشه!
        2- اگه قبلا سلولی از ستون k دارای رنگ قرمز باشد حتی با کلیک بر سلول های ستون k هم دستور اعمال نمی شه و باید دوباره رنگ سلول قرمز رو قرمز کنی تا بعد از کلیک بر سلولی از ستون k کد کار کنه
        امکان رفع این دو مشکل وجود داره؟
        سلام
        ببینید شما در نهایت باید روی یکی از سلول ها کلیک کنید و یا تغییری در سلول انجام بدید تا کد ها اجرا بشن. حالا بنده محدود کردم به ستون k تا کمترین تأثیر رو در کند شدن اکسل داشته باشه.
        در خصوص مشکل دوم جهت اجرای کد حتما باید رنگ قرمز رو به سلول اختصاص بدید. بنده روی فایل نمونه که قرار دادم چنین مشکلی ندارم و کد به درستی عمل میکنه.
        موفق باشید ...
        [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
        [/CENTER]

        کامنت

        • mahdi63

          • 2018/06/08
          • 28
          • 54.00

          #5
          نوشته اصلی توسط M_ExceL
          سلام
          ببینید شما در نهایت باید روی یکی از سلول ها کلیک کنید و یا تغییری در سلول انجام بدید تا کد ها اجرا بشن. حالا بنده محدود کردم به ستون k تا کمترین تأثیر رو در کند شدن اکسل داشته باشه.
          در خصوص مشکل دوم جهت اجرای کد حتما باید رنگ قرمز رو به سلول اختصاص بدید. بنده روی فایل نمونه که قرار دادم چنین مشکلی ندارم و کد به درستی عمل میکنه.
          موفق باشید ...
          با سلام و تبریک عید فطر
          بله فرمایش شما کاملا صحیح است و در فایل نمونه کد به درستی و کامل عمل میکند
          سوال دوم بنده درباره شیتی بود که قبلا سلول ها دارای رنگ قرمز هستند و ما که الان کد را وارد می کنیم نمی تواند تشخیص بدهد که ردیف آن سلول تغییر رنگ بدهد والا با اختصاص دادن رنگ قرمز به سلول، کد به درستی اجرا می شود
          از زحماتی که کشیدید بسیار سپاسگزارم
          در پناه حق باشید

          کامنت

          • M_ExceL

            • 2018/04/23
            • 677

            #6
            نوشته اصلی توسط mahdi63
            با سلام و تبریک عید فطر
            بله فرمایش شما کاملا صحیح است و در فایل نمونه کد به درستی و کامل عمل میکند
            سوال دوم بنده درباره شیتی بود که قبلا سلول ها دارای رنگ قرمز هستند و ما که الان کد را وارد می کنیم نمی تواند تشخیص بدهد که ردیف آن سلول تغییر رنگ بدهد والا با اختصاص دادن رنگ قرمز به سلول، کد به درستی اجرا می شود
            از زحماتی که کشیدید بسیار سپاسگزارم
            در پناه حق باشید
            سلام
            احساس کردم روی فایل قبلیتون می خواین این کار صورت بگیره. براتون انجام دادم.
            فایل رو چک کنید برای ستون موظفی هم کد دیگری قرار دادم تا در صورت قرمز بودن صفر بشه و در غیر این صورت مقدار h5 شیت دوم رو بگیره.
            دقت کنید جهت تغییر رنگ حتما باید سلولی از ستون k رو قرمز کنید و روی یکی از سلول های k کلیک کنید
            برای فعال و غیر فعال شدن لیست ها هم ستون های ورود و خروج باید تغییر کنه و اگر چنانچه موظفی با مرخصی برابر شد لیست فعال میشه.
            موفق باشید
            فایل های پیوست شده
            [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
            [/CENTER]

            کامنت

            • mahdi63

              • 2018/06/08
              • 28
              • 54.00

              #7
              نوشته اصلی توسط M_ExceL
              سلام
              احساس کردم روی فایل قبلیتون می خواین این کار صورت بگیره. براتون انجام دادم.
              فایل رو چک کنید برای ستون موظفی هم کد دیگری قرار دادم تا در صورت قرمز بودن صفر بشه و در غیر این صورت مقدار h5 شیت دوم رو بگیره.
              دقت کنید جهت تغییر رنگ حتما باید سلولی از ستون k رو قرمز کنید و روی یکی از سلول های k کلیک کنید
              برای فعال و غیر فعال شدن لیست ها هم ستون های ورود و خروج باید تغییر کنه و اگر چنانچه موظفی با مرخصی برابر شد لیست فعال میشه.
              موفق باشید
              سلام
              ممنون از پیگیرتون
              درباره رنگ شدن یک ردیف توضیح اینکه اگه کاربر در سلول ستون k جمعه رو تایپ کنه ستون قرمز می شود اما ردیف قرمز نمی شود حتی با کلیک بر سلول دیگری از ستون k
              درباره لیست باکس هم اینکه کد برای ردیف های 14 و 16 و 26 و 29 کار نمی کنه
              فایل های پیوست شده
              Last edited by mahdi63; 2018/06/15, 11:35.

              کامنت

              • M_ExceL

                • 2018/04/23
                • 677

                #8
                نوشته اصلی توسط mahdi63
                سلام
                ممنون از پیگیرتون
                درباره رنگ شدن یک ردیف توضیح اینکه اگه کاربر در سلول ستون k جمعه رو تایپ کنه ستون قرمز می شود اما ردیف قرمز نمی شود حتی با کلیک بر سلول دیگری از ستون k
                درباره لیست باکس هم اینکه کد برای ردیف های 14 و 16 و 26 و 29 کار نمی کنه
                سلام
                ستون دیگری اضافه کردم تا روز های تعطیل مشخص بشه.
                حالا فقط کافیه که داخل سلول های ستون k عبارت "off" رو وارد کنید و تمام.
                امیدوارم دیگه مشکل حل شده باشه اقا مهدی عزیز.
                باز هم اگر مشکلی بود درخدمتم.
                فایل های پیوست شده
                [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
                [/CENTER]

                کامنت

                چند لحظه..