Olá, Estou criando uma mala direta com VBA, a qual vincula um documento word. o problema é que quando clico no botão para gerar a carta (CommandButton1), é gerada sempre a carta do primeiro registro salvo na planilha (Plan2). eu gostaria que fosse gerado a carta com os dados que estão abertos no formulário, independente de qual linha esteja gravado. Poderiam me ajudar? Tem como selecionar os dados do meu formulário aberto para gerar a carta ?Sou novato no VBA. Segue abaixo o código que estou usando:
Private Sub CommandButton1_Click()
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\LAU\Documents\MALA\Doc1")
With wdocSource.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=False End With
Pergunta
lauro leite
Olá, Estou criando uma mala direta com VBA, a qual vincula um documento word. o problema é que quando clico no botão para gerar a carta (CommandButton1), é gerada sempre a carta do primeiro registro salvo na planilha (Plan2). eu gostaria que fosse gerado a carta com os dados que estão abertos no formulário, independente de qual linha esteja gravado. Poderiam me ajudar? Tem como selecionar os dados do meu formulário aberto para gerar a carta ?Sou novato no VBA. Segue abaixo o código que estou usando:
Private Sub CommandButton1_Click()
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\LAU\Documents\MALA\Doc1")
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 `Plan2$`"
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 Su
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.