با سلام و احترام خدمت اساتید عزیز
نیاز به کمک جهت رفع اشکال فیلتر رنگ ( رنگ سلول از طریق : 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 ، استفاده کنم ! لطفا در صورت امکان راهنمایی بفرمایید .
خیلی خیلی ممنونم.
|
اخطار: این یک موضوع قدیمی است به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید. |
|
علاقه مندی ها (Bookmarks)