- 26 Set 2016 às 16:45
#15628
Boa tarde pessoal,
Não foi possível dar continuidade ao meu tópico passado, mas eu resolvi de outra forma, bem melhor por sinal.
Porém estou com dois problemas. Preciso que, nesse código , o nome do arquivo salvo fique de uma forma que utilize os conteúdos do userform.
O outro problema é que essa planilha precisa ser acessada em mais de um computador, e para não precisar editar o código individualmente para fornecer a localização do modelo.docx (C:\Users\victor.monfort\Downloads\modelo.docx), tem alguma coisa que eu possa fazer para automatizar isso?
O mais importante para mim é o nome do arquivo mesmo, o outro eu posso fazer manualmente.
Sou totalmente leigo em excel, e muito mais em VBA, mas como um bom estudante, estou pesquisando na medida do possível.
Obrigado a todos, abraço.
Não foi possível dar continuidade ao meu tópico passado, mas eu resolvi de outra forma, bem melhor por sinal.
Porém estou com dois problemas. Preciso que, nesse código , o nome do arquivo salvo fique de uma forma que utilize os conteúdos do userform.
Código: Selecionar todos
No caso, seria para ao invés de ser "Relatorio.docx" para todos os documentos gerados (o que causa um erro porque o arquivo já existe quando vai gerar o segundo) seria: "Relatorio do dia txt_datare na hora txt_horacoleta", no qual txt_datare e txt_horacoleta são campos do userform.Private Sub UserForm_Initialize()
lin = 2
Do Until Plan1.Cells(lin, 1) = ""
ComboBox1.AddItem Plan1.Cells(lin, 1)
lin = lin + 1
Loop
End Sub
Private Sub CommandButton1_Click()
Dim Word As Word.Application
Dim DOC As Word.Document
Set Word = CreateObject("Word.Application")
Word.Visible = True
Set DOC = Word.Documents.Open("C:\Users\victor.monfort\Downloads\modelo.docx")
With DOC
'*Dados Amostra
.Application.Selection.Find.Text = "#NOMEETA"
.Application.Selection.Find.Execute
.Application.Selection.Range = ComboBox1
.Application.Selection.Find.Text = "#HORACOLETA"
.Application.Selection.Find.Execute
.Application.Selection.Range = txt_horacoleta
.Application.Selection.Find.Text = "#COR"
.Application.Selection.Find.Execute
.Application.Selection.Range = txt_cor
.Application.Selection.Find.Text = "#TURB"
.Application.Selection.Find.Execute
.Application.Selection.Range = txt_turb
.Application.Selection.Find.Text = "#CLOR"
.Application.Selection.Find.Execute
.Application.Selection.Range = txt_clor
.Application.Selection.Find.Text = "#DATARE"
.Application.Selection.Find.Execute
.Application.Selection.Range = txt_datare
End With
ChangeFileOpenDirectory "C:\Users\victor.monfort\Desktop\"
ActiveDocument.SaveAs Filename:="Relatorio.docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
End Sub
O outro problema é que essa planilha precisa ser acessada em mais de um computador, e para não precisar editar o código individualmente para fornecer a localização do modelo.docx (C:\Users\victor.monfort\Downloads\modelo.docx), tem alguma coisa que eu possa fazer para automatizar isso?
O mais importante para mim é o nome do arquivo mesmo, o outro eu posso fazer manualmente.
Sou totalmente leigo em excel, e muito mais em VBA, mas como um bom estudante, estou pesquisando na medida do possível.
Obrigado a todos, abraço.