اصلاح کد

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

    • 2015/12/22
    • 118
    • 54.00

    [حل شده] اصلاح کد

    سلام خدمت اساتید

    کد زیر رو مشکلش چیه؟ لطفادرستش کنید.کارم خیلی گیره
    میخوام تو سلولی که مشخصه فیلتر و انجام بده
    .
    کد:
    Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect
    On Error Resume Next
    ActiveSheet.ShowAllData
    If ActiveSheet.Cells(1, 13) = "TRUE" Then
    Selection.AutoFilter Field:=8, Criteria1:="TRUE"
    ElseIf ActiveSheet.Range("M1") = "FALSE" Then
    Selection.AutoFilter Field:=8, Criteria1:="FALSE"
    ElseIf ActiveSheet.Range("M1") = "3" Then
    ActiveSheet.ShowAllData
    End If
    ActiveSheet.Protect
    Application.ScreenUpdating = True
    End Sub
    سه تا شرط داره اگه اولی نشد دومی ، دومی نشد سومی. یکی از اونها بود کار فیلتر انجام بشه.
    لطفا مشکلم و حل کنید.
    متشکرم
    Last edited by Amir Ghasemiyan; 2020/06/27, 09:47. دلیل: قرار دادن كد در تگ مربوطه
    هر گاه خدا تو را به لبه پرتگاه برد باز به او اعتماد کن چون يا تو را از پشت خواهد گرفت يا پرواز را به تو خواهد آموخت
  • majid_mx4

    • 2012/06/25
    • 699

    #2
    با سلام

    میتوانید از دستورات زیر استفاده کنید
    توضیح : قسمت پروتکت شیت برداشته شده اول دستورات را تست کنید بعد با برداشتن علامت " ' " از اول قسمت دستور سبز رنگ میتوانید آن را فعال کنید.
    کد:
    Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect
    On Error Resume Next
    ActiveSheet.ShowAllData
    
    
    If ActiveSheet.Cells(1, 13).Value = True Then
    Selection.AutoFilter Field:=8, Criteria1:="TRUE"
    
    ElseIf ActiveSheet.Range("M1") = False Then
    Selection.AutoFilter Field:=8, Criteria1:="FALSE"
    ElseIf ActiveSheet.Range("M1") = 3 Then
    ActiveSheet.ShowAllData
    End If
    'ActiveSheet.Protect
    Application.ScreenUpdating = True
    End Sub
    موفق باشید میر

    کامنت

    • ناصر خان خان

      • 2015/12/22
      • 118
      • 54.00

      #3
      نوشته اصلی توسط majid_mx4
      با سلام

      میتوانید از دستورات زیر استفاده کنید
      توضیح : قسمت پروتکت شیت برداشته شده اول دستورات را تست کنید بعد با برداشتن علامت " ' " از اول قسمت دستور سبز رنگ میتوانید آن را فعال کنید.
      کد:
      Private Sub Worksheet_Activate()
      Application.ScreenUpdating = False
      ActiveSheet.Unprotect
      On Error Resume Next
      ActiveSheet.ShowAllData
      
      
      If ActiveSheet.Cells(1, 13).Value = True Then
      Selection.AutoFilter Field:=8, Criteria1:="TRUE"
      
      ElseIf ActiveSheet.Range("M1") = False Then
      Selection.AutoFilter Field:=8, Criteria1:="FALSE"
      ElseIf ActiveSheet.Range("M1") = 3 Then
      ActiveSheet.ShowAllData
      End If
      'ActiveSheet.Protect
      Application.ScreenUpdating = True
      End Sub
      موفق باشید میر


      ممنون و متشکر استاد

      میگن معما چون حل شود آسان شود. چه نکته ریزی چه اشتباه کوچکی داشتم.


      به هر روی متشکرم
      هر گاه خدا تو را به لبه پرتگاه برد باز به او اعتماد کن چون يا تو را از پشت خواهد گرفت يا پرواز را به تو خواهد آموخت

      کامنت

      چند لحظه..