Pessoal Boa Noite.
Venho encontrando dificuldades em gerar um relatório há tempos. Preciso muito de uma ajuda.
Meu nível de VBA é muito básico. Geralmente copio linguagens que encontro em exemplos e faço as adaptações para os meus modelos.
A dúvida é a seguinte:
Eu preciso gerar relatórios que puxarão os dados de uma tabela dinâmica.
Na tabela dinâmica eu tenho as seguintes colunas: DATA; Nº PEDIDO; CLIENTE; TRANSPORTE; PRODUTO; QTDE
Para gerar o relatório eu criei um Fórmulário UserForm que possui os campos Data Início; Data Fim; um ComboBox para selecionar o cliente e o botão EXECUTAR que executa a macro abaixo:
Private Sub btExecutar_Click()
Sheets("RELATÓRIO_VENDAS").Select
Worksheets("RELATÓRIO_VENDAS").Range("A3:F1000000").ClearContents
lin = 2
linha = 3
If cdDataINI = "" Or cdDataFIM = "" Then Exit Sub
Do Until Worksheets("DINÂMICA_VENDAS").Cells(lin, 1) = ""
If Worksheets("DINÂMICA_VENDAS").Cells(lin, 1) >= CDate(cdDataINI) And _
Worksheets("DINÂMICA_VENDAS").Cells(lin, 1) <= CDate(cdDataFIM) Then
Worksheets("RELATÓRIO_VENDAS").Cells(linha, 1) = Worksheets("DINÂMICA_VENDAS").Cells(lin, 1)
Worksheets("RELATÓRIO_VENDAS").Cells(linha, 2) = Worksheets("DINÂMICA_VENDAS").Cells(lin, 2)
Worksheets("RELATÓRIO_VENDAS").Cells(linha, 3) = Worksheets("DINÂMICA_VENDAS").Cells(lin, 3)
Worksheets("RELATÓRIO_VENDAS").Cells(linha, 4) = Worksheets("DINÂMICA_VENDAS").Cells(lin, 4)
Worksheets("RELATÓRIO_VENDAS").Cells(linha, 5) = Worksheets("DINÂMICA_VENDAS").Cells(lin, 5)
Worksheets("RELATÓRIO_VENDAS").Cells(linha, 6) = Worksheets("DINÂMICA_VENDAS").Cells(lin, 6)
linha = linha + 1
End If
lin = lin + 1
Loop
MsgBox "Processo concluído - " & cdDataINI & " à " & cdDataFIM
End Sub
A parte de gerar o relatório dentro das datas definidas está rodando direitinho, sem problema algum.
A questão é que além das datas eu gostaria que o relatório filtrasse por clientes também.
Sendo assim, se eu inserir algum nome de cliente no ComboBox só serão geradas as linhas que constam aquele determinado cliente dentro do período de datas.
E caso eu deixe em branco o ComboBox dos clientes, ele gera o relatório normal com todos os clientes dentro do período de datas.
Alguém pode me ajudar com este trabalho por favor?
Vou anexar a Planilha caso eu não tenha sido muito claro.
Att,
Gustavo Valle
Postado : 11/01/2017 4:52 pm