Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#14585
Amigos,

Tenho uma base de dados extraída do SAP, que me trás uma relação de todos os materiais que os funcionários solicitaram no almoxarifado.

Pois bem, o que preciso é formatar esses dados em um relatório, individualmente, informando o que cada funcionário solicitou no almoxarifado, e imprimir em PDF individualmente.

Procurei de diversas formas no google, porém sem sucesso.

Certo da ajuda de todos, desde já agradeço.

Diego Matos
#14586
Boa tarde!!

Olé Diego, como podemos ajuda-lo? :?


Onde está o arquivo exportado do SAP, como seria o resultado disso (faça isso manualmente, poste seu modelo).

Att
#14587
Alexandre, boa tarde

Desculpe-me por não ser tão claro na minha pergunta. :roll:

Segue anexo uma planilha como exemplo, e prometo ser bem objetivo agora: :D

Na aba BD SAP é onde eu insiro os dados vindos do SAP
Na aba Relatório, eu gostaria que pelo nome do funcionário, trouxesse todos os itens do almoxarifado que ele solicitou, conforme estão na BD SAP.
Depois disso, eu quero imprimir em pdf individualmente cada relatório, por funcionário.

Só isso! :lol:

Desde já agradeço.

Diego Matos
#14642
Alexandre, boa tarde

Essa é parte do problema... Quanto a fórmula eu já tinha feito de outra forma, a sua foi um jeito novo que aprendi como fazer.... ;)

Mas não é só isso que preciso. :? A necessidade é ter um botão na Aba Formulário que imprima todos os formulários em pdf, por funcionário. Ex: o formulário da funcionária Lilian, do funcionário Diego.... e assim por diante, sem repetição.

Obrigado desde já.

Diego Matos
#14652
Boa tarde!

Você consegue adaptar a impressão em PDF?
Código: Selecionar todos
Sub AleVBA_2910()
Dim oSh As Worksheet
Set oSh = Worksheets("BASE DE DADOS")
Dim rng As Range
Dim oNewRow As ListRow
    Worksheets("FORMULÁRIO").Range("B11:F30").ClearContents
    With oSh.ListObjects("Tabela1")
        .AutoFilter.ShowAllData
        .Range.AutoFilter Field:=6, Criteria1:=Worksheets("FORMULÁRIO").Range("C4")
        .DataBodyRange.Copy Destination:=Worksheets("FORMULÁRIO").Range("B" & Rows.Count).End(xlUp).Offset(1, 0)
    End With
    Columns("G").EntireColumn.Delete
End Sub
Att
#14661
Diego, dá pra fazer uma mala direta, que gera todos os PDFs impressos automaticamente, isso se o banco de dados do SAP fornecer todos os dados que você precisa sem sofrer intervenção.
Neste caso, você irá usar uma macro, com tratamento em lista de dados. E o PDF creator irá gerar os PDFs sem perguntar a você. Caso seja isso, você deve informar se esses dados geram algum arquivo, ou se você copia e cola no excel. Se gera um arquivo que é importado ao excel, anexe esse arquivo aqui. Também informe em outra planilha, dois exemplos de dos os dados dispostos nessa ficha de equipamento, a lista que será varrida pelo vb, depende de exatamente de como os dados irão para o excel. Como dá um pouco de trabalho essa mala direta, é ruim mandar algum exemplo, e depois ter que arrumar...
#14674
Alexandre/Bruno, bom dia.

Agradeço a todos pela ajuda, está sendo de grande valia.

Encaminho novamente a planilha e serei o mais objetivo possível.

Na Aba Formulário, a célula D4, será uma lista de validação de dados, onde preencherá todos os outros itens.

A figura do PDF terá a macro que fará a seguinte rotina:

Clica na célula D4, identifica qual o primeiro da lista, imprime todo o formulário em pdf (O nome do arquivo será o nome da pessoa)
E assim sucessivamente, até o ultimo nome...

Agradeço desde já,

Diego Matos
#14675
Bom dia!!

Faça sua adaptação!
Código: Selecionar todos
Sub Botão1_Clique()
Dim oSh As Worksheet
Set oSh = Worksheets("BASE DE DADOS")
Dim rng As Range
Dim oNewRow As ListRow
Application.ScreenUpdating = 0
    Worksheets("FORMULÁRIO").Range("B11:F30").ClearContents
    With oSh.ListObjects("Tabela1")
        .AutoFilter.ShowAllData
        .Range.AutoFilter Field:=6, Criteria1:=Worksheets("FORMULÁRIO").Range("C4")
        .DataBodyRange.Copy Destination:=Worksheets("FORMULÁRIO").Range("B" & Rows.Count).End(xlUp).Offset(1, 0)
    End With
    Columns("G").EntireColumn.Delete
    With Worksheets("FORMULÁRIO").Range("B11:F40")
        .Borders.LineStyle = xlNone
    End With
    Call AleVBA_PDF
Application.ScreenUpdating = 1
End Sub
Código: Selecionar todos
Sub AleVBA_PDF()
Application.ScreenUpdating = False
    Sheets("FORMULÁRIO").Select
    Range("B$11:$F$40").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\aleVBA\" & Range("C4").Value, Quality:=xlQualityStandard, IncludeDocProperties:= _
        True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.ScreenUpdating = False
End Sub
Att
#14688
Diego,

Tá ai o brinquedo. Divirta-se. Apenas crie uma pasta em C:\GeraPDF e depois clique em "Gerar PDF's".

OBS: Dá pra adaptar essa marco para enviar por email. Tanto no corpo do email como também no anexo, e também gera/envia automático.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord