Notifications
Clear all

Ajuda com codigo para imprimir mediante dados textbox

17 Posts
2 Usuários
0 Reactions
2,420 Visualizações
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

Boas amigos.
Pretendia ajuda para fazer imprimir o resultado de uma pesquisa.
A ideia é:
Tenho uma userform em que ao fazer a pesquisa pelo nome ele vai procurar e dar o resultado de todas as linhas da panilha(folha1) onde existe esse nome e depois cria uma folha de impressao igual á panilha(folha1)mas com o resultado da pesquisa.

Ex: Combobox1(local de pesquisa)-ao introduzir o nome "Pedro", ele vai procurar na coluna B(local dos nomes) todos os registos com esse nome e vai criar uma folha para impressao com o cabeçalho da panilha(folha1) e imprimir esses resultados

Obrigado

 
Postado : 06/03/2016 3:26 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Não sei se vc ja tem o codigo que faz a pesquisa dos dados e cria a planilha, se tem acrescente essa linha

sheets("nome da planilha que sera impressa").printout

Se nao tem o codigo que cria a planilha, disponibilize o arquivo, so assim o codigo pode ser escrito de acordo.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 06/03/2016 3:36 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

amigo Mprudencio.
Ainda nao tenho codigo para esse efeito.
o que procuro acho que é um codigo para autofiltro.pelo menos de onde tirei a ideia é um autofiltro, mas esta so numa panilha do excel.
Mas em anexo envio o ficheiro para perceber a minha ideia,mas transposta para uma Userform com uma combobox e um botao.

Eu ja tenho uma userform onde faço pesquisa por data e nome. se der para adaptar a essa também servia, vou enviar o codigo que tenho na userform de pesquisa

dados no userform de pesquisa com listbox

Private Sub Pesquisar_Click()
Dim vValor As String
    If ComboBoxCampos <> "" Then
        TextBoxFiltro = ""
        vValor = ComboBoxCampos
    End If
    If TextBoxFiltro <> "" Then
        ComboBoxCampos = ""
        vValor = TextBoxFiltro
    End If
    If ComboBoxCampos = "" And TextBoxFiltro = "" Then
        MsgBox "Informe um critério para realizar a pesquisa!", vbExclamation, "Erro"
        Exit Sub
    End If
    buscaValor vValor
End Sub

no Module este codigo

'Sub filtraCondutor()
    Application.DisplayAlerts = False
    With ThisWorkbook
        With .Sheets("Folha1")
            Dim ultimaLinha As Integer
            ultimaLinha = .UsedRange.Rows.Count
            Range("B2:B" & ultimaLinha).Select
            Selection.Copy
            Sheets.Add After:=Sheets(Sheets.Count)
                With ThisWorkbook.Sheets(Sheets.Count)
                    .Activate
                    .Range("A1").Select
                    ActiveCell.PasteSpecial xlPasteValues
                    Application.CutCopyMode = False
                    .Range("A1").Select
                    ultimaLinha = .UsedRange.Rows.Count
                    .Range(Selection, Selection.End(xlDown)).Select
                    ActiveWorkbook.Worksheets(Sheets.Count).Sort.SortFields.Clear
                    ActiveWorkbook.Worksheets(Sheets.Count).Sort.SortFields.Add Key:=Range("A1"), _
                        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                    With ActiveWorkbook.Worksheets(Sheets.Count).Sort
                        .SetRange Range("A1:A" & ultimaLinha)
                        .Header = xlNo
                        .MatchCase = False
                        .Orientation = xlTopToBottom
                        .SortMethod = xlPinYin
                        .Apply
                    End With
                    ActiveSheet.Range("$A$1:$A$" & ultimaLinha).RemoveDuplicates Columns:=1, Header:=xlNo
                    .Range("A1").Select
                End With
                With frmPesquisa
                    .ComboBoxCampos.Clear
                    Dim c As Integer
                        For c = 1 To Sheets(Sheets.Count).UsedRange.Rows.Count
                            .ComboBoxCampos.AddItem Cells(c, "A")
                        Next
                End With
                ThisWorkbook.Sheets(Sheets.Count).Delete
                ThisWorkbook.Sheets("Folha1").Activate
                Range("A1").Select
        End With
    End With
End Sub


Function buscaValor(ByVal vValor As String)
    With frmPesquisa
        DoEvents
        Application.ScreenUpdating = False
        .ListBoxLista.Clear
        ThisWorkbook.Sheets("Folha1").Activate
            On Error GoTo vErro
                If frmPesquisa.ComboBoxCampos <> "" Then
                    Columns("B:B").Select
                    Selection.Find(CStr(vValor), ActiveCell, xlValues, xlPart, xlByRows, xlNext).Activate
                Else
                    Columns("D:D").Select
                    Selection.Find(CStr(vValor), ActiveCell, xlValues, xlPart, xlByRows, xlNext).Activate
                End If
                Dim c As Integer
                For c = 2 To ActiveSheet.UsedRange.Rows.Count
                    Cells(c, ActiveCell.Column).Select
                    If ActiveCell <> Empty Then
                        Dim vStr As String
                            vStr = ActiveCell.Value
                        
                        If StrConv(vStr, vbLowerCase) Like "*" & StrConv(vValor, vbLowerCase) & "*" Then
                            .ListBoxLista.AddItem Cells(c, "A").Text
                            .ListBoxLista.List(.ListBoxLista.ListCount - 1, 1) = Cells(c, "B").Text
                            .ListBoxLista.List(.ListBoxLista.ListCount - 1, 2) = Cells(c, "C").Text
                            .ListBoxLista.List(.ListBoxLista.ListCount - 1, 3) = Cells(c, "D").Text
                            .ListBoxLista.List(.ListBoxLista.ListCount - 1, 4) = Cells(c, "E").Text
                            .ListBoxLista.List(.ListBoxLista.ListCount - 1, 5) = Cells(c, "F").Text
                            .ListBoxLista.List(.ListBoxLista.ListCount - 1, 6) = Cells(c, "G").Text
                            .ListBoxLista.List(.ListBoxLista.ListCount - 1, 7) = Cells(c, "H").Text
                        End If
                    Else
                        Exit Function
                    End If
                Next c
                .TextBoxFiltro.SetFocus
                Application.ScreenUpdating = True
                Exit Function

vErro:
    If Err = 91 Then
        frmPesquisa.ListBoxLista.Clear
        frmPesquisa.TextBoxFiltro.SetFocus
        Application.ScreenUpdating = True
        Exit Function
    End If
            End With

End Function

a ideia é tipo o do ficheiro que encontrei na net mas ao colocar o nome ele fazer a pesquisa e depois dar um PrintPreview com uma folha igual ao formato da folha 1 mas so com o resultado .

 
Postado : 07/03/2016 12:56 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Sua planilha esta incompleta, poste um exemplo com o resultado esperado.

O que é Par imprimir??

KD o form???

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 07/03/2016 2:18 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

MPrudencio.
o que eu queria fazer era mais ou menos o que o ficheiro excel esta fazendo com macros.
queria era saber se é possivel eu depois adaptar ao meu formulario.

o excel que enviei ao clicar em cima de senhores ou senhoritas, vai fazer uma busca na panilha e depois da uma folha so com os resultados, pretendia esse efeitro no meu formulario vba

 
Postado : 07/03/2016 4:56 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Agora entendi menos, a planilha funciona, então qual a dificuldade???

Adaptar ao form???

Se quer saber se da pra fazer, a resposta é sim.

Como fazer ?

Isso depende de como e o form e a planilha.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 07/03/2016 5:59 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

amigo Mprudencio.
eu queria adaptar ao formulario.
vou enviar o formulario

 
Postado : 08/03/2016 4:32 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O formulario vai ser preenchido manualmente e gravado em que folha?

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 08/03/2016 4:44 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

o formulario é gravado na folha 1

 
Postado : 08/03/2016 5:11 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O formulario Registro esta funcionando.

Qual a necessidade???

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 08/03/2016 6:59 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

boa noite MPrudencio
O que pretendia era um codigo que depois de fazer pesquisa ele tivessse um botao imprimir e desse os resultados numa folha formatada como a folha 1com os resultados

 
Postado : 09/03/2016 3:14 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Vc regitra na folha 01 quer pesquisar os dados da folha 01 e imprimir a folha 01?

Nao entendi!

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 09/03/2016 4:33 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

o que eu queria era por exemplo:
Fazer a pesquisa de um nome na form de pesquisa, ele dá os resultados, e ter a opçao de ele imprimir esses dados com o mesmo cabeçalho da folha 1

 
Postado : 10/03/2016 3:22 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Entao monte uma planilha com o formato que vc quer que seja a impressão.

Onde vai cada informação.
Qual o formato da planilha que devera ser impressa?

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 10/03/2016 3:33 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

Amigo mprudencio.
A minha ideia seria ex:
Fazer pesquisa no formulário de pesquisa, e na listebox dá o conjunto de resultados
depois se eu quiser imprimir esses dados sejam passados para a panilha 5 para imprimir

 
Postado : 11/03/2016 3:35 pm
Página 1 / 2