پیدا کردن آخرین سطر یک جدول درصورت اعمال فیلتر

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

    • 2020/04/17
    • 93
    • 54.00

    [حل شده] پیدا کردن آخرین سطر یک جدول درصورت اعمال فیلتر

    با سلام و احترام
    دستور vba برای پیدا کردن آخرین سطر پر شده یک جدول بعد از اعمال فیلتر
    با تشکر
  • majid_mx4

    • 2012/06/25
    • 699

    #2
    سلام

    امیدوارم درست متوجه منظورتان شده باشم

    توضیح : این دستور را بعد از دستور فیلتر بگذارید
    کد:
    Sub Mm()
    LRAfterfilt = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
     MsgBox LRAfterfilt 
    End Sub
    پایدار باشید میر

    کامنت

    • پیمان طهماسبی

      • 2020/04/17
      • 93
      • 54.00

      #3
      با تشکر
      این کد در هر صورت یک پیام میدهد
      لطفا فایل پیوست رو جهت توضیح دقیقتر مشاهده بفرمایید
      فایل های پیوست شده

      کامنت

      • majid_mx4

        • 2012/06/25
        • 699

        #4
        با سلام

        دوست عزیز ، فایل اولی که شما فرستاید جدول Tabel نبود بلکه Renge یا همان محدوده بود و دستورات اینو دو با هم متفاوت است .
        کلیه دستورات قبلی از جمله دستورات خودتان را حذف این دستورات را کپی و به فایل خود انتقال دهید.
        کد:
        Sub FilterTblTrading()
        Dim TextFilter As String
        
                TextFilter = Cells(2, 2).Value
                ActiveSheet.ListObjects("Tbl_Name").Range.AutoFilter Field:=2, _
                Criteria1:=TextFilter
                
        LRAfterfilt = ActiveSheet.ListObjects("Tbl_Name").Range.End(xlUp).Row
        End Sub
        
        
        Sub CountVisM()
        FilterTblTrading
            Dim LIstOb As ListObject
            Dim LastRow As ListRow
        
            Set LIstOb = ActiveSheet.ListObjects(1)
        
                 Set LastRow = VisibleRow(LIstOb, 3)
        
                     If Not LastRow Is Nothing Then MsgBox LastRow.Range.Address
           
           If Not LastRow Is Nothing Then MsgBox LastRow.Range.Row
        
        End Sub
        
        Function VisibleRow(LIstOb As ListObject, Idx As Long) As ListRow
            Dim RwCnt As Long
            Dim LastRow As ListRow
        
            If Idx <= 0 Then Exit Function
            For Each LastRow In LIstOb.ListRows
                If LastRow.Range.EntireRow.Hidden = False Then
                    RwCnt = RwCnt + 1
                    If Idx = RwCnt Then
                        Set VisibleRow = LastRow
                        Exit For
                    End If
                End If
            Next
        End Function
        پایدار باشید میر

        کامنت

        • پیمان طهماسبی

          • 2020/04/17
          • 93
          • 54.00

          #5
          از وقتی که برام گذاشتید بسیارممنونم
          خیلی بزرگوارید

          کامنت

          چند لحظه..