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

Pesquisar/Imprimir via Multipage VBA (Resolvido)

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Elane2020
Colaborador
Colaborador
Mensagens: 36
Registrado em: Sex Jun 26, 2020 9:26 pm

Pesquisar/Imprimir via Multipage VBA (Resolvido)

Mensagem por Elane2020 »

Boa noite, colegas!

Existe alguma possibilidade de utilizar um filtro diretamente em uma Multipage para a impressão de Dados? Pergunto pq o meu banco de dados vai ter mais de 10 mil itens, e utilizando a listbox, vai ficar muito lenta a busca e a impressão. Daí, eu pensei em duas possibilidades: criar uma Multipage para repartir esses dados por seções, mas não encontrei nenhuma espécie de filtro/impressão para utilizar, nesse caso. A outra alternativa, seria criar vários "optionbutton" no userform, para selecionar a plan desejada e ela aparecer na listbox, e assim, tentar outro código de triagem, mas isso é possível? Pois não encontrei nada parecido na internet.
Não sei se deu para entender o que estou precisando. Todavia, anexei um pequeno modelo do projeto.

Agradeço pela atenção.
Anexos
Modelo_Teste.zip
(117.76 KiB) Baixado 153 vezes
Editado pela última vez por Elane2020 em Ter Jan 26, 2021 9:54 pm, em um total de 1 vez.


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.


Elane2020
Colaborador
Colaborador
Mensagens: 36
Registrado em: Sex Jun 26, 2020 9:26 pm

Re: Pesquisar/Imprimir via Multipage VBA

Mensagem por Elane2020 »

Prezados,

Encontrei um modelo aqui no fórum que insere os dados na listbox conforme o "optionbutton" selecionado. No entanto, não estou conseguindo identificar e solucionar o erro 13: "Tipos Incompatíveis", conforme demonstrado abaixo.

Se alguém puder me explicar como se resolve esse erro na declaração das variáveis, agradeço.

Cordialmente,
Anexos
Modelo_teste.zip
(142.68 KiB) Baixado 144 vezes
Sem título.png
Sem título.png (42.3 KiB) Exibido 2719 vezes
print2.png
print2.png (24.67 KiB) Exibido 2719 vezes


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Pesquisar/Imprimir via Multipage VBA

Mensagem por webmaster »

Elane2020,

Isso deveria estar num outro tópico, não? Ou as duas perguntas se referem ao mesmo arquivo?


Elane2020
Colaborador
Colaborador
Mensagens: 36
Registrado em: Sex Jun 26, 2020 9:26 pm

Re: Pesquisar/Imprimir via Multipage VBA

Mensagem por Elane2020 »

Boa noite,

Grata por responder. Sim, trata-se do mesmo arquivo, só que acrescentei os códigos do modelo que encontrei aqui no fórum, e deu esse erro. Ao que tudo indica, o problema está na declaração das variáveis. Tentei ajustar algumas coisas, mas sem êxito, já que meu conhecimento é incipiente.

Cordialmente,


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.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Pesquisar/Imprimir via Multipage VBA

Mensagem por Reinaldo »

A função aplicarfiltro "espera" como parâmetro um numero inteiro("Function aplicaFiltro(ByVal SecRef As Long)"),
já a variável utilizada vSec é uma string/Texto, o que causa esse erro apontado ("tipos incompativeis");
A estrutura da função, pelo apresentado, não utiliza o valor dessa "chamada"
assim se utilizar :--> aplicaFiltro 1; eliminará o erro apontado.

Código: Selecionar todos

Function aplicaFiltro(ByVal SecRef As Long)
'Selecionamos a planilha Gastos
With ThisWorkbook.Sheets("DADOS")
    .Activate
    'Variáveis para manipularmos as linhas
    Dim primeiraLinha As Long
    Dim proximaLinha As Long
    Dim ultimaLinha As Long

    'Iniciamos a validação pela linha 3
    primeiraLinha = 3
    'Armazenamos a última linha da planilha
    ultimaLinha = .UsedRange.Rows.Count
        
    With frmFiltro
        .ListBoxLista.Clear
    End With
        
    proximaLinha = primeiraLinha
    ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "A").Select
    
    'Enquanto o valor da linha atual na coluna A for diferente de nulo
    While ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "A") <> ""
        'E se o valor da coluna B for igual ao OptionButton selecionado
         If ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "B") = vSec Then            '
            With frmFiltro.ListBoxLista
                'Adicionamos os itens a linha atual ao ListBox
                .AddItem Cells(proximaLinha, "A")
                .List(.ListCount - 1, 1) = ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "B")
                .List(.ListCount - 1, 2) = ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "C")
                .List(.ListCount - 1, 3) = ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "D")
                .List(.ListCount - 1, 4) = ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "E")
                .List(.ListCount - 1, 5) = ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "F")
                .List(.ListCount - 1, 6) = ThisWorkbook.Sheets("DADOS").Cells(proximaLinha, "G")
                
            End With
        End If
        'Incrementamos o valor da proxima linha
        proximaLinha = proximaLinha + 1
    Wend
End With
End Function
Porem não creio qu eirá obter resultado, visto que vSec retorna o caption do botão de opçao, e essa descriçãonão consta na planiulha "Dados".


Elane2020
Colaborador
Colaborador
Mensagens: 36
Registrado em: Sex Jun 26, 2020 9:26 pm

Re: Pesquisar/Imprimir via Multipage VBA

Mensagem por Elane2020 »

Boa tarde, Reinaldo!

Grata pela ótima explicação. Vou tentar mesmo assim. Caso não consiga -- o que acredito que vc está certíssimo-- a única forma simplória que vejo é inserir vários userforms (um para cada 2 ou três seções), daí a filtro não fica tão pesado. Vcs são geniais! Quando crescer, quero ser assim... rsrsrs!

Cordialmente,


Elane2020
Colaborador
Colaborador
Mensagens: 36
Registrado em: Sex Jun 26, 2020 9:26 pm

Re: Pesquisar/Imprimir via Multipage VBA (RESOLVIDO)

Mensagem por Elane2020 »

Efetuei os ajustes no código e inclui uma nova coluna na planilha DADOS para as seções, e deu certo!
Muito obgda! Eu não conseguiria sem sua ajuda.

Cordialmente,


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