Jump to content
Fórum Script Brasil
  • 0

Interface entre excel e word(mala-direta) via vba


Jefferson Inácio
 Share

Question

Ola, sou novato por aqui e ainda aprendendo os segredos do VBA...

Criei uma mala direta num documento Word que receberá dados de uma planilha do Excel. Quando abro o documento word manualmente recebo a seguinte mensagem "Quando este documento for aberto o seguinte comando SQL sera executado: SELECT*FROM `Exportar`" ao clicar em sim, os dados atualizam perfeitamente. Criei um código no Excel(VBA) para abrir o arquivo logo apos efetuar a transferência de dados, ao executar esse código o documento Word abre, então não recebo mais a mensagem acima mas resolvi depurar o código, então o código mostra essa janela (Captura 1), eu dando ok, ele abre o Word, mas dá erro dizendo que o Word não pode abrir a fonte de dados (Captura2) e marca na depuração, a área em amarelo no código (Captura 3). 

Não quero que abra essa caixa na Captura 2 e gostaria de saber se alguém saber desse da Captura 3.

Segue o código atual que estou usando para abrir o documento:

 

Private Sub BOTÃO_ABRIR_Click()

'Com este pequeno trecho de código , criamos uma instância para o objeto Word e depois usando VBA
'abrimos o documento Novo Contrato Jeff's Festas.docx que esta no diretório C:\Users\Jeff's\Desktop\Novo Contrato\Novo Contrato Jeff's Festas.docx

'Dim word As New word.Application

'With word
'   .Documents.Open "C:\Users\Jeff's\Desktop\Novo Contrato\Novo Contrato Jeff's Festas.docx"
'   .Visible = True
'   .WindowState = wdWindowStateMaximize
'End With

'Fechamos a tela Sucesso

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

    On Error Resume Next
    Set wd = GetObject(, "Word.Application")
    If wd Is Nothing Then
        Set wd = CreateObject("Word.Application")
    End If
    On Error GoTo 0

    Set wdocSource = wd.Documents.Open("C:\Users\Jeff's\Desktop\Novo Contrato\Novo Contrato Jeff's Festas.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 `Exportar$`"


    With wdocSource.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .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

Capturar1.PNG

Capturar2.PNG

Capturar3.PNG

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...