WORD E VB6

ALLAN85 29/05/2013 09:51:07
#424184
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


KERPLUNK 29/05/2013 10:16:28
#424187
Você reparou que o código que efetivamente faz a substituição do texto na function [Ô]Substitui_Var[Ô], está comentado, certo?
ALLAN85 29/05/2013 10:29:16
#424189
Opa, vlw pelo retorno..

Pois é amigo, fiz tudo que é teste ali, e não funfou..

Tem alguma ideia do que poderia ser?

Vlw
KERPLUNK 29/05/2013 10:41:03
#424191
Você descomentou a linha que faz efetivamente a alteração?
ALLAN85 29/05/2013 13:56:45
#424204
Sim sim, com certeza.
KERPLUNK 29/05/2013 15:05:30
#424208
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
ALLAN85 29/05/2013 15:32:57
#424210
Teria um exemplo por favor?
MARCELO.TREZE 29/05/2013 18:47:50
#424221
Resposta escolhida
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.

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