Ir ao conteúdo
  • Cadastre-se

Mala direta - excel vba + word


Posts recomendados

Bom dia, estou desenvolvendo uma mala direta em excel vba e word a partir de um modelo existente e estou com problemas no desenvolvimento de alguns códigos:


1) Preciso carregar a foto no word a partir do código em excel, alguem tem algum modelo de código? Ao escolher o grupo preciso que busque a logo correspondente

e carregue onde está a inscrição #FOTO no documento word.

2) como faço para ao escolher o botão word, ele tbem permita a inclusão de arquivo que será a páguina dois do documento word, e será variavel?
 teria que abrir a opção de escolher arquivo e automaticamente incluir como folha dois..

 

3) Preciso ao escolher o grupo, e ao escolher a página 2, que automaticamente ele mescle todos os registros deste grupo no word e crie novo arquivo mesclado para impressão que deverá ser frente e verso.

A folha gerada será colocada em autoenvelopadora. É possivel fazer da forma como estou pensando?

 

se alguém já tiver feito algo parecido e tiver uma luz, agradeço. Vou anexar os arquivos para melhor entendimento.

Obrigada

 

MALA DIRETA.zip

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 3 semanas depois...

Bom dia

 

Resolvi não complicar, e achei um código para enviar dados para mala direta do word conforme abaixo:

Ele mescla todos e monta arquivo novo com base no modelo já pronto no word.

Só que tá me dando erro de defina a variável: wdFormLetters

Como faço?

Vi uma solução que seria declarar 

Const wdFormLetters = 0, wdOpenFormatAuto = 0
Const wdSendToNewDocument = 0, wdDefaultFirstRecord = 1, wdDefaultLastRecord = -16

Mas como sei os dados que tenho que colocar?

Obrigada

 

 

Private Sub btn_montar_contrato_Click()


Dim wd As Object
Dim wdocSource As Object
Dim strWorkbookName As String

 On Error Resume Next
    Set wd = CreateObject("Word.Application")
    On Error GoTo 0

Set wdocSource = wd.Documents.Open(ActiveWorkbook.Path & "\contrato_modelo_specialle.docx")

strWorkbookName = ThisWorkbook.Path & "\" & ThisWorkbook.Name

wdocSource.MailMerge.MainDocumentType = wdFormLetters

wdocSource.MailMerge.OpenDataSource _
    Name:=strWorkbookName, _
    AddToRecentFiles:=False, _
    Revert:=False, _
    Format:=wdOpenFormatAuto, _
    Connection:="Data Source=" & strWorkbookName & ";Mode=Read", _
    SQLStatement:="SELECT * FROM  `Contatos$`"

With wdocSource.MailMerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource

    ' aqui eu limito para quem será gerada a ficha, no caso somente para o cliente selecionado, pois, do contrário ele sempre gerará para todos os clientes da planilha
    
    '.FirstRecord = txt_a_numerocliente ' este é o nome da textbox onde fica o número do cliente
    '.LastRecord = txt_a_numerocliente
    .FirstRecord = wdDefaultFirstRecord
    .LastRecord = wdDefaultLastRecord

    End With
    .Execute Pause:=False
End With

wd.Visible = True
wdocSource.Close SaveChanges:=False

Set wdocSource = Nothing
Set wd = Nothing

End Sub

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

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

×
×
  • Criar novo...