WORD E VB6
Por favor, estou tentando gera um relatório em Word com base do VB, tipo gerar um contrato com base no cadastro de um cliente no VB, substituindo as variáveis do Word pelo campos no VB.
Fiz conforme abaixo, mas não deu certo, tipo o Word abre mas n substitui as variáveis e da um erro também.
Obrigado
Private Sub Command1_Click()
Dim objDoc As Word.Document
Set objWord = New Word.Application
objWord.Visible = True
Set objDoc = objWord.Documents.Open(App.Path & [Ô]\bi.doc[Ô])
objDoc.Activate
Call Substitui_Var([Ô]@contratada[Ô], Text1)
[ô] Salva o documento com um novo nome
[ô]objWord.ActiveDocument.SaveAs (txtcontrato)
[ô]Encerra o word
objWord.Quit
[ô] informa ao usuario que o contrato foi gerado
[ô]MsgBox [Ô]Contrato gerado com sucesso! em : [Ô] & txtcontrato, vbInformation, [Ô] Contrato Gerado [Ô]
[ô] libera memoria
Set objWord = Nothing
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu um erro durante o processamento [Ô] & [Ô] - Erro numero : [Ô] & Err.Number
End Sub
Private Sub Substitui_Var(Header As String, Data As String)
[ô]Clear Formatting
Text1.Text = Header
Replacement.Text = Data
[ô]Forward = True
[ô]Format = True
[ô]Execute = True
[ô]objWord.Selection.Select()
[ô]Clipboard.SetDataObject (Data)
[ô]objWord.Selection.Paste()
End Sub
Fiz conforme abaixo, mas não deu certo, tipo o Word abre mas n substitui as variáveis e da um erro também.
Obrigado
Private Sub Command1_Click()
Dim objDoc As Word.Document
Set objWord = New Word.Application
objWord.Visible = True
Set objDoc = objWord.Documents.Open(App.Path & [Ô]\bi.doc[Ô])
objDoc.Activate
Call Substitui_Var([Ô]@contratada[Ô], Text1)
[ô] Salva o documento com um novo nome
[ô]objWord.ActiveDocument.SaveAs (txtcontrato)
[ô]Encerra o word
objWord.Quit
[ô] informa ao usuario que o contrato foi gerado
[ô]MsgBox [Ô]Contrato gerado com sucesso! em : [Ô] & txtcontrato, vbInformation, [Ô] Contrato Gerado [Ô]
[ô] libera memoria
Set objWord = Nothing
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu um erro durante o processamento [Ô] & [Ô] - Erro numero : [Ô] & Err.Number
End Sub
Private Sub Substitui_Var(Header As String, Data As String)
[ô]Clear Formatting
Text1.Text = Header
Replacement.Text = Data
[ô]Forward = True
[ô]Format = True
[ô]Execute = True
[ô]objWord.Selection.Select()
[ô]Clipboard.SetDataObject (Data)
[ô]objWord.Selection.Paste()
End Sub
Você reparou que o código que efetivamente faz a substituição do texto na function [Ô]Substitui_Var[Ô], está comentado, certo?
Opa, vlw pelo retorno..
Pois é amigo, fiz tudo que é teste ali, e não funfou..
Tem alguma ideia do que poderia ser?
Vlw
Pois é amigo, fiz tudo que é teste ali, e não funfou..
Tem alguma ideia do que poderia ser?
Vlw
Você descomentou a linha que faz efetivamente a alteração?
Sim sim, com certeza.
Não seria mais fácil:
Abrir o documento mestre do word(onde o texto pré-pronto está)
Buscar todo esse texto
Fazer as substituições no VB
Jogar o texto pronto de volta para o word
Abrir o documento mestre do word(onde o texto pré-pronto está)
Buscar todo esse texto
Fazer as substituições no VB
Jogar o texto pronto de volta para o word
Teria um exemplo por favor?
vamos
1 - Crie um arquivo no Word, um modelo de carta, um contrato de aluguel..., o qual vc irá sempre preencher apenas os campos (nome, endereço...)
2 - Ponha o cursor no local onde deve aparecer o conteúdo a ser preenchido (nome, endereço, telefone...) pelos dados nas textbox do form.
3 - No documento( Word) vá no menu inserir
4 - indicador, criar um nome de indicador e referenciar no comando abaixo na devida textbox.
1 - Crie um arquivo no Word, um modelo de carta, um contrato de aluguel..., o qual vc irá sempre preencher apenas os campos (nome, endereço...)
2 - Ponha o cursor no local onde deve aparecer o conteúdo a ser preenchido (nome, endereço, telefone...) pelos dados nas textbox do form.
3 - No documento( Word) vá no menu inserir
4 - indicador, criar um nome de indicador e referenciar no comando abaixo na devida textbox.
Private Sub Command1_Click()
Dim ArqModelo As String, NovoDocumento As String
ArqModelo = [Ô]caminho do arquivo que criou como modelo[Ô]
NovoDocumento = [Ô]caminho e nome do documento que sera gerado[Ô]
Dim objDoc As Word.Document
Set objWord = New Word.Application
objWord.Visible = True
Set objDoc = objWord.Documents.Open(ArqModelo)
objDoc.Activate
objDoc.Bookmarks([Ô]Data[Ô]).Range.Text = text1.text
objDoc.Bookmarks([Ô]Numero[Ô]).Range.Text = text2.text
objDoc.Bookmarks([Ô]esquema[Ô]).Range.Text = Text3.Text
objWord.ActiveDocument.SaveAs NovoDocumento, wdWordDocument
Set objDoc = Nothing
Set objWord = Nothing
End Sub
Tópico encerrado , respostas não são mais permitidas