Pon el siguiente código en los eventos de tu hoja
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sCliente As String, sCodigo As Variant, mensaje As String
Dim pItem As PivotItem, n As Long
'
Application.ScreenUpdating = False
'
If Not Intersect(Target, Range("A3:B3")) Is Nothing Then
sCliente = [A3]
sCodigo = [B3]
With ActiveSheet.PivotTables("Tabla1").PivotFields("NombreCliente")
.ClearAllFilters
'
If sCliente <> "" Then
For Each pItem In .PivotItems
If LCase(pItem) <> LCase(sCliente) Then
n = n + 1
If n < .PivotItems.Count Then
pItem.Visible = False
Else
.ClearAllFilters
mensaje = "El cliente no existe"
End If
End If
Next
End If
End With
'
n = 0
With ActiveSheet.PivotTables("Tabla1").PivotFields("CodItem")
.ClearAllFilters
'
If sCodigo <> "" Then
For Each pItem In .PivotItems
If LCase(pItem) <> LCase(sCodigo) Then
n = n + 1
If n < .PivotItems.Count Then
pItem.Visible = False
Else
.ClearAllFilters
mensaje = "El Código no existe"
End If
End If
Next
End If
End With
Application.ScreenUpdating = False
If mensaje <> "" Then MsgBox mensaje
End If
End Sub
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
- En el panel del lado derecho copia la macro