فیلتر داده های یک جدول

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • a.heidari

    • 2021/04/06
    • 16
    • 61.00

    [حل شده] فیلتر داده های یک جدول

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

    با AutoFilter شروط متنی و شرط برابر با صفر گذاشتم درست بود ولی شروط عددی کوچکتر بزرگتر خطا میده.ضمن اینکه میخوام صفرها فیلتر بشه. نه نمایش.

    نمونه فایل خدمت دوستان.AutoFilter.rar
  • a.heidari

    • 2021/04/06
    • 16
    • 61.00

    #2
    با سلام خدمات دوستان
    برای جدول بالا یه راه حل ساده و بامزه به ذهنم رسید و انجام دادم که درست هم کار میکنه.
    برای دوستانی که همین مشکل رو دارند عرض میکنم شاید راهگشا باشه.
    چون در این جدول من میخواستم فقط ردیفهایی که حاوی عدد بزرگتر از صفر هستند نمایش و چاپ بشه، یک ستون اضافه کردم و شرط رو در اون ستون قراردادم و حالا اون ستون، عمل فیلتر رو برام انجام میده. در نهایت هم یه ماکرو برای خود شیت قراردادم که به محض فعال شدن شیت (ورود به شیت) ماکرو قبلی اجرا و فیلتر فعال میشه و با این روش مشکل حل شد. نکته اینکه شما می توانید در ستون فیلتر هر شرطی قرار بدید و ستون رو هم مخفی کنید. یک پیغام هم برای وقتی که هیچ دیتایی برای نمایش وجود نداشت صادر بشه.

    این هم نمونه کد خدمت شما.
    Click image for larger version

Name:	Untitled.png
Views:	1
Size:	8.5 کیلو بایت
ID:	139595

    Sub Filter1()
    Sheet2.Range("A1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$E$24").AutoFilter Field:=5, Criteria1:= _
    "قابل گزارش"
    If Sheet2.Range("d30") = 0 Then
    MsgBox "اطلاعاتي براي نمايش وجود ندارد.", vbExclamation + vbMsgBoxLeft + vbMsgBoxRtlReading, "اعلان"
    End If
    End Sub

    ************************************************** ************************************************
    Private Sub Worksheet_Activate()
    Module3.Filter1
    End Sub
    ************************************************** ************************************************

    موفق باشید.

    کامنت

    چند لحظه..