Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Tratamento de erro de macro

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
IsaacM.
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Ter Jun 28, 2011 4:26 pm

Tratamento de erro de macro

Mensagem por IsaacM. »

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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder