Ir ao conteúdo
  • Cadastre-se
COMPRADOR

Mala direta - excel vba + word

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×