نیاز به کمک جهت رفع اشکال فیلتر رنگ ( رنگ سلول از طریق : Conditional Formating ایجاد شده است )!

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

    • 2017/03/02
    • 142

    نیاز به کمک جهت رفع اشکال فیلتر رنگ ( رنگ سلول از طریق : Conditional Formating ایجاد شده است )!

    با سلام و احترام خدمت اساتید عزیز
    نیاز به کمک جهت رفع اشکال فیلتر رنگ ( رنگ سلول از طریق : Conditional Formating ایجاد شده است )!

    مفروضات :
    سه شیت به نام Home ، A، B در اختیار داریم که در دوشیت A و B سطر هایی که شماره چک غیر تکراری دارند بصورت اتوماتیک تشخیص داده شده و رنگی می شوند.
    و ماکرویی در اختیار داریم که این سلول های رنگی رو به شیت Home انتقال می دهند.

    مشکل موجود :
    در اون قسمت از ماکرو که جهت شناسایی سلول های رنگی تهیه شده است :

    کد:
    .Interior.ColorIndex = 49
    ، این شناسایی فقط زمانی صورت می گیرد که سلول های مربوطه از طریق پالت رنگ رنگ آمیزی شده باشند! تا کار انتقال انجام شود ! در حالی که من این سلول های رنگی رو از طریق Conditional Formating رنگی کردم نه پالت رنگ بصورت دستی !

    کد شناسایی رنگ و فیلتر رنگ مربوطه :
    کد:
    Sub FilterBlueRow()
    za1 = Sheet2.Cells(Sheet2.Rows.Count, "C").End(xlUp).Row
    For I = 2 To za1
    If Range("C" & I).Interior.ColorIndex = 49 Then
        ActiveSheet.ListObjects("Table269").Range.AutoFilter Field:=3, Criteria1:=RGB _
            (22, 54, 92), Operator:=xlFilterCellColor 
     Exit For
    End If
    Next I
    End Sub
    برای رفع این مشکل من مجبور شدم به ماکروی مربوطه مواردی را اضافه کنم که طی آن بیاد در اخر هر جدول یک ردیف خالی ایجاد کنه و اخرین سلول خالی رو از پالت رنگ ، به رنگ مخصوص تبدیل کند تا تمام سلول هایی که از طریق Conditional Formating هم رنگی شده اند در شناسایی این ماکرو تشخیص داده شده و لحاظ شوند ! و فیلتر سلول های رنگ انجام پذیرد و در اخر آخرین سطر خالی ایجاد شده رو حذف می کنم ! و انتقال سلول های رنگی انجام میشه .

    کد:
    Sub FilterBlueRow()
        Range("C2").Select
        Selection.End(xlDown).Select
        Selection.ListObject.ListRows.Add AlwaysInsert:=True
       ' Range("C7").Select
       Selection.End(xlDown).Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight2
            .TintAndShade = -0.249977111117893
            .PatternTintAndShade = 0
        End With
    
    za1 = Sheet2.Cells(Sheet2.Rows.Count, "C").End(xlUp).Row
    For I = 2 To za1
    If Range("C" & I).Interior.ColorIndex = 49 Then
        ActiveSheet.ListObjects("Table269").Range.AutoFilter Field:=3, Criteria1:=RGB _
            (22, 54, 92), Operator:=xlFilterCellColor      
     Exit For
    End If
    Next I
          Range("C2").Select
        Selection.End(xlDown).Select
        Selection.End(xlDown).Select
        Selection.EntireRow.Delete
    End Sub

    درخواست :
    با بررسی که انجام دادم https://msdn.microsoft.com/en-us/lib...ffice.12).aspx
    برای حل مسله و شناسایی رنگ سلول ها که با Conditional Formating ایجاد شده باشند، بایستی به جای :

    کد:
    .Interior.ColorIndex = 49
    از آیتم : FormatColor Object ، استفاده کرد تا شناسایی درست صورت گرفته و نیازی به اضافه کردن سطر جدید به اخر جدول و رنگ کردن آن ا از طریق پالت رنگ نبوده ، اما مسله نهایی اینجاست که من نمی دونم چطور باید از FormatColor Object به جای .Interior.ColorIndex = 49 ، استفاده کنم ! لطفا در صورت امکان راهنمایی بفرمایید .
    Click image for larger version

Name:	کد رنگ.jpg
Views:	2
Size:	126.3 کیلو بایت
ID:	145394
    خیلی خیلی ممنونم.
    فایل های پیوست شده
    Last edited by Skynet; 2017/04/16, 20:11.
چند لحظه..