Boa tarde prezados amigos!
Peço humildemente desculpas se meu post está no lugar errado. Sou novo no fórum e não sei verificar se já tiveram a mesma dúvida que tenho
Não sei se será possível me auxiliarem, estou iniciando meu aprendizado em Macros e VBA do Excel e fui incumbido de montar uma planilha na qual ao inserir os dados em um UserForm, estes são enviados para dois modelos de documentos no Word. Consegui fazer com que um dos documentos, o de VENDA seja gerado sem problemas no Word, no entanto após a sua geração retorna o "Erro em tempo de execução '91': A variável do objeto ou a variável do bloco 'With' não foi definida"; e ao depurar o código, o VBE seleciona a linha ".Application.Selection.Find.Text = "#LOCADOR". No entanto, ao inserir os dados para a geração do documento ALUGUEL no UserForm, o documento simplesmente não é gerado no Word apesar do mesmo "abrir", e retorna o mesmo erro citado; porém ao depurar o código o VBE seleciona a linha .Application.Selection.Find.Text = "@COMPRADOR". Já tentei com os meus parcos conhecimentos em VBA, modificar o código de todas as formas que conheço, mas não estou conseguindo resolver estes erro. Abaixo o código que criei baseado em algumas coisinhas que já aprendi de VBA:
Private Sub CommandButton1_Click()
Dim Word As Word.Application
Dim DOCVENDA As Word.DOCUMENT
Dim DOCALUGUEL As Word.DOCUMENT
Dim MODALIDADE As String
Set Word = CreateObject("WORD.APPLICATION")
Word.Visible = True
MODALIDADE = TextBox1
If MODALIDADE = "VENDA" Then
Set DOCVENDA = Word.DOCUMENTS.Open("G:\@TESTES\VENDA.MODELO.docx")
End If
With DOCVENDA
.Application.Selection.Find.Text = "@COMPRADOR"
.Application.Selection.Find.Execute
.Application.Selection.Range = Me.TextBox2
.Application.Selection.Find.Text = "@NACIONALIDADE"
.Application.Selection.Find.Execute
.Application.Selection.Range = Me.TextBox3
.Application.Selection.Find.Text = "@PROFISSÃO"
.Application.Selection.Find.Execute
.Application.Selection.Range = Me.TextBox4
.Application.Selection.Find.Text = "@ESTADOCIVIL"
.Application.Selection.Find.Execute
.Application.Selection.Range = TextBox5
.Application.Selection.Find.Text = "@RG"
.Application.Selection.Find.Execute
.Application.Selection.Range = TextBox6
.Application.Selection.Find.Text = "@CPF"
.Application.Selection.Find.Execute
.Application.Selection.Range = TextBox7
If Dir("G:\@TESTES\VENDA.docx") <> "" Then
Kill "G:\@TESTES\VENDA.docx"
End If
.SaveAs ("G:\@TESTES\VENDA.docx")
End With
Set DOCVENDA = Nothing
Set Word = Nothing
'********************************************************************************************
If MODALIDADE = "ALUGUEL" Then
Set DOCALUGUEL = Word.DOCUMENTS.Open("G:\@TESTES\ALUGUEL.MODELO.docx")
Word.Visible = True
End If
With DOCALUGUEL
.Application.Selection.Find.Text = "#LOCADOR"
.Application.Selection.Find.Execute
.Application.Selection.Range = Me.TextBox2
.Application.Selection.Find.Text = "#NACIONALIDADE"
.Application.Selection.Find.Execute
.Application.Selection.Range = Me.TextBox3
.Application.Selection.Find.Text = "#PROFISSÃO"
.Application.Selection.Find.Execute
.Application.Selection.Range = Me.TextBox4
.Application.Selection.Find.Text = "#ESTADOCIVIL"
.Application.Selection.Find.Execute
.Application.Selection.Range = TextBox5
.Application.Selection.Find.Text = "#RG"
.Application.Selection.Find.Execute
.Application.Selection.Range = TextBox6
.Application.Selection.Find.Text = "#CPF"
.Application.Selection.Find.Execute
.Application.Selection.Range = TextBox7
If Dir("G:\@TESTES\ALUGUEL.docx") <> "" Then
Kill "G:\@TESTES\ALUGUEL.docx"
End If
.SaveAs ("J:\MODELOS\ALUGUEL.docx")
End With
Set DOCALUGUEL = Nothing
Set Word = Nothing
End Sub
Agradeço a quem puder me ajudar, e agradeço a todos por compartilharem os seus conhecimentos!