Search code examples
excelfilteringpivot-tableraiserrorvba

Iserror not working


I've a problem with my code. I'm trying to activate a code that take a cell in one sheet and filter the data in another pivot sheets, in case that the value dosen't exist there's a msgbox that show there's an error. My problem is when the value is true I'd like it to show msgbox "the value dosen't exists in the pivot". when the "if" is false I need to filter the data but it dosen't work. There's the code:

Sub MM()
    Sheets("sheets1").Select
    Selection.Copy
    Sheets("pivot").Select
    Range("C1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.PivotTables("pivottable1").PivotFields("filter WBS").ClearAllFilters
    ActiveSheet.PivotTables("pivottable1").PivotCache.Refresh
    If Not IsError(ActiveSheet.PivotTables("pivottable1").PivotFields("filter WBS").CurrentPage = Range("c1").Value) Then
        MsgBox ("the value dosen't exists in the pivot")
         Sheets("sheets1").Select
    Else
        ActiveSheet.PivotTables("pivottable1").PivotFields("filter WBS").CurrentPage = Range("c1").Value
    End If
End Sub

I'll be glad for some help!


Solution

  • I found the solution for my problem.

    Sub MM()
    Sheets("Sheets1").Select
    Selection.Copy
    Sheets("Pivot").Select
    Range("C1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.PivotTables("pivottable1").PivotFields("filter WBS").ClearAllFilters
    ActiveSheet.PivotTables("pivottable1").PivotCache.Refresh
    On Error GoTo msg
    ActiveSheet.PivotTables("pivottable1").PivotFields("filter WBS").CurrentPage = Range("c1").Value
    Exit Sub
    
    msg:
    MsgBox ("There is no data for this WBS in pivot")
    Sheets("sheets1").Select
    End Sub