Sou novo nesse forum, não sei se esse é o local certo para postar esta dúvida
Eu estou cruzando três bases de dados. Todas elas tem produtos e as informações de cada um dos produtos, porém, alguns produtos aparecem em uma e não aparecem nas outras, ou aparecem em duas e não aparecem na terceira.
Fiz uma tabela dinâmica para cada base de dados, onde cada tabela me trás uma informação dos produtos (de sua respectiva base). Nas tabelas dinâmicas o filtro é o nome do produto.
Então eu fiz uma tabela que puxa as informações das 3 tabelas dinâmicas, juntando as informações e fiz um controle (que é carregado a partir da tabela dinamica com maior quantidade de produtos), para que o usuário possa selecionar o produto que ele quer saber as informações. Esse controle “roda” o filtro das tabelas dinâmicas para o nome do produto selecionado.
Quando seleciono um produto que não tem em uma das tabelas dinâmicas, ele substitui outro produto desta tabela ao invés de zerar, ou seja, se tenho produto “B” e “C”, e seleciono no controle o produto “A”, ele substitui o “B”(por exemplo) e me traz as informações do “B”, como nome de “A”, ao invés de trazer as informações zeradas.
Gostaria de saber como faço para que quando a macro não achar, no filtro de uma tabela dinâmica, o produto selecionado, ele me retorne zero, ao invés de substituir outro produto.
Segue o código utilizado para o controle:
Sub CriaComboProdutos()
Application.ScreenUpdating = False
Dim DropdownProdutos As ControlFormat
Set lb = Sheets("Resumo").Shapes.AddFormControl(xlDropDown, 100, 1, 100, 15)
lb.ControlFormat.AddItem "1"
End Sub
Sub ComboProdutos()
Application.ScreenUpdating = False
Dim fld As PivotField, DropdownProdutos As ControlFormat
Set fld = Sheets("Resumo").PivotTables("Resumos1").PivotFields("PRODUTOS")
Z = fld.PivotItems.Count
Set lb = Sheets("Resumo").Shapes.Item("DropdownProdutos")
lb.ControlFormat.RemoveAllItems
lb.ControlFormat.AddItem "(Tudo)"
Do While Z > 0
If fld.PivotItems(Z).Name <> "(vazio)" Then
lb.ControlFormat.AddItem fld.PivotItems(Z).Name
End If
Z = Z - 1
Loop
End Sub
Sub DropDownProdutos_Alt()
Application.ScreenUpdating = False
x = ActiveSheet.Shapes("DropdownProdutos").ControlFormat.List(ActiveSheet.Shapes("DropdownProdutos").ControlFormat.ListIndex)
Sheets("Resumo").PivotTables("Resumos1").PivotFields("PRODUTOS").CurrentPage = x
Sheets("Resumo").PivotTables("Resumos2").PivotFields("PRODUTOS").CurrentPage = x
Sheets("Resumo").PivotTables("Resumos3").PivotFields("PRODUTOS").CurrentPage = x
End Sub
Obrigado
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E