Ir ao conteúdo

Posts recomendados

Postado

Olá, Galera!

 

Eu tenho código VBA que faz gerar vários pdf separados de uma mala direta, mas aparece esse erro em tempo de execução '5852'

Poderia me ajudar, por favor.

 

Sub salvamaladireta()
Application.ScreenUpdating = False
Dim qtde As Integer
Dim nomeArquivo As String
Dim registro As Integer
Dim nomearquivouniorg As String


ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

qtde = ActiveDocument.MailMerge.DataSource.RecordCount

For registro = 1 To qtde

nomeArquivo = ActiveDocument.MailMerge.DataSource.DataFields("NOME").Value 'no lugar de NAME voce colona o     nome da coluna da sua base de dados'
nomearquivouniorg = ActiveDocument.MailMerge.DataSource.DataFields("NOME").Value 'no luga de Uniorg voce colona     o nome da coluna da sua base de dados'

With ActiveDocument.MailMerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource
        .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
    End With
    .Execute Pause:=False
End With
ActiveDocument.SaveAs2 FileName:="C:\Users\loren\Desktop\", FileFormat:= _
    wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
    :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
    :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
    SaveAsAOCELetter:=False, CompatibilityMode:=15
    'O trecho C:\Users\Thiago_2\Desktop\Example Merge Document\TERMO ADITIVO DE CONTRATO - voce deve substituir pelo diretorio da sua pasta onde ira salvar os arquivos. A parte TERMO ADITIVO DE CONTRATO o inicio do nome do documento. Um inicio fixo que sera igual para todos'
ActiveWindow.Close
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord

Next registro
Application.ScreenUpdating = True
End Sub

 

O erro aparece nessa linha ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

POR FAVOR!

Postado

Esse erro normalmente aparece quando objeto MailMerge não existe e quando você está tentando executar a mala direta.

Experimente primeiro, criar uma mala direta em seu documento do Word.

Basta usar o assistente e esse objeto será preenchido automaticamente e depois execute o código.

 

  • Curtir 1
Postado
  Em 31/10/2021 às 12:54, Basole disse:

Esse erro normalmente aparece quando objeto MailMerge não existe e quando você está tentando executar a mala direta.

Experimente primeiro, criar uma mala direta em seu documento do Word.

Basta usar o assistente e esse objeto será preenchido automaticamente e depois execute o código.

 

Expandir  

Eu já faço isso e continua mostrando o erro :(

Postado
  Em 01/11/2021 às 01:06, Basole disse:

@Rayane Parreira Resende qual o erro que aparece agora e em qual trecho? 

Permanece na mesmo linha. Eu faço a mala direta certinha salvo ela depois mesclo ela salvo novamente e depois executo ela, mas aparece esse erro. Já pesquisei muito sobre ele mas não encontro solução. 

Expandir  

 

  Em 01/11/2021 às 01:06, Basole disse:

@Rayane Parreira Resende qual o erro que aparece agora e em qual trecho? 

 

Expandir  

Eu consegui um código de gerar os arquivos, mas queria que eles saíssem com o nome que está no Excel. As vezes gero 50 arquivos e preciso ficar renomeando isso.  

Postado

@Rayane Parreira Resende  experimente o codigo agora com as alterações 

 

Sub SalvaMalaDireta()
Application.ScreenUpdating = False
Dim qtde As Integer
Dim nomeArquivo As String
Dim registro As Integer
Dim nomearquivouniorg As String

On Error GoTo tR_eRROR

With ActiveDocument.MailMerge.DataSource
.ActiveRecord = wdFirstRecord
End With

qtde = ActiveDocument.MailMerge.DataSource.RecordCount

For registro = 1 To qtde

nomeArquivo = ActiveDocument.MailMerge.DataSource.DataFields("NOME_").Value
nomearquivouniorg = ActiveDocument.MailMerge.DataSource.DataFields("LOCALIDADE_").Value
With ActiveDocument.MailMerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource
        .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
    End With
    .Execute Pause:=False
End With

ActiveDocument.SaveAs2 FileName:="C:\Users\loren\Desktop\" & nomeArquivo, FileFormat:= _
    wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
    :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
    :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
    SaveAsAOCELetter:=False, CompatibilityMode:=15
    
ActiveWindow.Close
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord

Next registro
tR_eRROR:
Application.ScreenUpdating = True

End Sub

 

  • Curtir 2
  • Obrigado 1
Postado
  Em 01/11/2021 às 02:19, Basole disse:

@Rayane Parreira Resende  experimente o codigo agora com as alterações 

 

Sub SalvaMalaDireta()
Application.ScreenUpdating = False
Dim qtde As Integer
Dim nomeArquivo As String
Dim registro As Integer
Dim nomearquivouniorg As String

On Error GoTo tR_eRROR

With ActiveDocument.MailMerge.DataSource
.ActiveRecord = wdFirstRecord
End With

qtde = ActiveDocument.MailMerge.DataSource.RecordCount

For registro = 1 To qtde

nomeArquivo = ActiveDocument.MailMerge.DataSource.DataFields("NOME_").Value
nomearquivouniorg = ActiveDocument.MailMerge.DataSource.DataFields("LOCALIDADE_").Value
With ActiveDocument.MailMerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource
        .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
    End With
    .Execute Pause:=False
End With

ActiveDocument.SaveAs2 FileName:="C:\Users\loren\Desktop\" & nomeArquivo, FileFormat:= _
    wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
    :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
    :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
    SaveAsAOCELetter:=False, CompatibilityMode:=15
    
ActiveWindow.Close
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord

Next registro
tR_eRROR:
Application.ScreenUpdating = True

End Sub

 

Expandir  

Nossa salvooou! O que eu altero no código para gerar em pdf os documentos ? 

@Basole Conseguir gerar eles em pdf nossa muito obrigadoooooooo! 

 

Uma pergunta: Nesse trecho

 

nomeArquivo = ActiveDocument.MailMerge.DataSource.DataFields("NOME_").Value
nomearquivouniorg = ActiveDocument.MailMerge.DataSource.DataFields("LOCALIDADE_").

 

Na segunda linha precisa colocar o nome da ultima coluna do banco de dados para funcionar? 

  • Curtir 1
  • Solução
Postado

@Rayane Parreira Resende Este código, a pessoa que compartilhou, provavelmente ao salvar cada documento,acrescentou no nome a organização que continha na base de dados:

 

nomearquivouniorg = ActiveDocument.MailMerge.DataSource.DataFields("LOCALIDADE_")

 

No seu caso se quiser acrescentar a sigla do Estado (localidade), é só concatenar com o nomeArquivo & "_" & nomearquivouniorg

 

* Mas pode desconsiderar essa linha

 

  • Curtir 3
  • 6 meses depois...
Postado

@Basole preciso de ajuda.

 

Eu fiz uma pergunta, mas excluíram.

to tentando salvar os arquivos em pdf individuais com os nomes da minha coluna "OBS" mas não estou conseguindo, quando não é um erro (5852) é outro que não consigo entender o que significa. 

 

Algumas informações para auxiliar

 

Minha Pasta para salvamento: C:\Users\rosane.oliveira\Documents\termos aditivos

nome da coluna do excel para salvar como nome do arquivo de pdf individual: OBS

numero e letra da coluna (arquivo de excel q usei para gerar mala direta no word) que contem as informações para renomear os arquivos: Q2

tipo de arquivo desejado a ser salvo: PDF

primeira letra ou palavra de cada página do word:  ESTADO

ultima letra/palavra da página do termo aditivo: Contratado (A)

 

eu ja não sei mais o que fazer gente, são mais de 1000 que eu vou ter q renomear se isso não der certo!

 

 

PRORROGAÇÃO TEMPORARIOS - 2022 -.xlsxBuscando informações... termos aditivos.docxBuscando informações...

Postado

@rosanezane bom dia, 

 

É necessário vincular o arquivo do Excel que contém os dados.

 

Caso não tenha feito este procedimento:

Abra o documento, vá em Correspondências > Selecionar Destinatários > Usar uma lista Existente, 

 

image.png.e8230505bc8c2dfefeb78fcadc2b1e5a.png

 

 

e selecione a Pasta de trabalho com os dados (Excel) :

image.png.7b33dff54eef529ae89466ce4e215879.png

 

E selecione a Planilha (aba), conf a img acima

 

 

  Em 02/05/2022 às 21:12, rosanezane disse:

primeira letra ou palavra de cada página do word:  ESTADO

ultima letra/palavra da página do termo aditivo: Contratado (A)

Expandir  

 

Não Entendi o que quis dizer com as informações acima 

Segue em anexo o documento com a macro atualizada para salvar no formato PDF de acordo com o caminho (diretorio), informado.

 

Para executar aperte as teclas [ Alt + F8 ] e selecione a macro => "SalvarMalaDireta_PDF"

 

 

 

TermosAditivosl.zipBuscando informações...

  • Curtir 1
  • Amei 1
Postado
  Em 03/05/2022 às 14:22, Basole disse:

primeira letra ou palavra de cada página do word:  ESTADO

ultima letra/palavra da página do termo aditivo: Contratado (A)

Expandir  

Porque ensinaram que para salvar individualmente, teria que além de gerar a mala direta, editar os arquivos individualmente lá em concluir e mesclar.

Mas para identificar onde começa uma página e onde termina essa mesma página (na hora de salvar), precisa de referencias. Dai o Inicio e final de cada página

 

@Basole ja sou fã!

deu tudo certo aqui !

😍😭

  • Curtir 1
Postado

@rosanezane a macro não está limitada, ela está programada para executar de acordo com os destinátarios vinculados pelo word ao arquivo do Excel.

 

image.png.5cd1492cc5df7c07fa3635ba38e84110.png

De acordo com a imagem acima, voce pode verificar no seu Documento quantas linhas do excel está vinculadas. 

 

1 - Verifique na sua planilha do Excel se não possui alguma linha/coluna vazia, no intervalo. 

2 - Tente atualizar o vinculo com sua planilha, caso tenha alterado a quantidade de linhas na planilha, após atualizar a lista de destinatários no documento.

3 - Enfim caso não de certo as opções veremos outras possibilidades. 

 

 

  • Curtir 1
Postado
  Em 03/05/2022 às 19:28, Basole disse:

@rosanezane a macro não está limitada, ela está programada para executar de acordo com os destinátarios vinculados pelo word ao arquivo do Excel.

 

image.png.5cd1492cc5df7c07fa3635ba38e84110.png

De acordo com a imagem acima, voce pode verificar no seu Documento quantas linhas do excel está vinculadas. 

 

1 - Verifique na sua planilha do Excel se não possui alguma linha/coluna vazia, no intervalo. 

2 - Tente atualizar o vinculo com sua planilha, caso tenha alterado a quantidade de linhas na planilha, após atualizar a lista de destinatários no documento.

3 - Enfim caso não de certo as opções veremos outras possibilidades. 

 

 

Expandir  

Descobri o que ocorreu! Tive que apagar os "." Pontos das palavras da coluna OBS (utilizadas para salvar ) aí deu certo ♥️

  • Curtir 1
Postado

@rosanezane é verdade não é aceito o ponto e alguns caracteres que não são permitidos utilizar em nomes de arquivos:

   ( \ / | ? < > * .“  )                                                                                                                                    

Mas que bom que encontrou o problema e deu tudo certo :aplausos:

  • Curtir 1
  • 3 meses depois...
Postado

Oi! @basole

 

Poderia me ajudar, por gentileza. 

 

Quando eu gero as cartas mostra uma tela do word e ai preciso ficar clicando várias vezes em não salvar o documento da mala direta em formato word, por mais que eu esteja gerando eles em pdf. 

 

Você consegue me ajudar ? 

 

Vou fazer uma mala para mais de 1000 documentos.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!