Logo Hardware.com.br
TheMenestrel
TheMenestrel Novo Membro Registrado
2 Mensagens 1 Curtida

[Resolvido] Auxílio em Macro - Salvar Como Arquivo em Word.

#1 Por TheMenestrel 12/09/2019 - 14:03
Olá pessoal, boa tarde, tudo bem?

Preciso de ajuda na minha macro!

Fiz uma macro que substitui textos padrão em um arquivo de word. Inicialmente somente eu utilizava a macro, então coloquei um local padrão da minha máquina para salvar.

Entretanto, agora, outras pessoas utilizarão e preciso adicionar a opção de "Salvar Como" quando a macro chegar na linha de salvar o arquivo em word. Poderiam me auxiliar como faço isso?

Obs: não tenho muito conhecimento em VBA.

Segue o que fiz, vou deixar em negrito o momento em que salva o documento em Word e preciso que apareça o "Salvar Como":

Obs 2: Fiz um botão "Gerar Arquivo" que contém a macro toda abaixo:



Sub Formulario_109()

Dim Word As Word.Application
Dim DOC As Word.Document
Dim Linha As Integer
Dim Num As Integer
Dim Sigla As String

Linha = 2


Set Word = CreateObject("WORD.Application")
Set DOC = Word.Documents.Open("J:\! NGI\NRPRO\Checklist.docx")
Word.Visible = True
Num = Sheets("Plan2").Range("B" & Linha)
Instrumento = Sheets("Plan2").Range("A" & Linha)
UG = Sheets("Plan2").Range("C" & Linha)

With DOC

.Application.Selection.Find.Text = "[HASHTAG]#ANO[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("A" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#INSTRUMENTO[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("B" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#ESPECIE[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("F" & Linha)

.Application.Selection.Find.Text = "#COD_FAV"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("G" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#FAV[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("H" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#PA[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("I" & Linha)

.Application.Selection.Find.Text = "#DATA_INICIO"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("J" & Linha)

.Application.Selection.Find.Text = "#DATA_FINAL"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("K" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#PT[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("L" & Linha)

.Application.Selection.Find.Text = "#FONTE_REC"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("M" & Linha)

.Application.Selection.Find.Text = "#DESC_FONTE_REC"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("N" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#OBJETO[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("O" & Linha)

.Application.Selection.Find.Text = "#MOD_LICITACAO"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("P" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#FUNDAMENTO[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("Q" & Linha)

.Application.Selection.Find.Text = "[HASHTAG]#VALOR[/HASHTAG]"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("R" & Linha)

.Application.Selection.Find.Text = "#DATA_ASSINATURA"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("Y" & Linha)

.Application.Selection.Find.Text = "#COD_ORGAO_EXEC"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("AA" & Linha)

.Application.Selection.Find.Text = "#DESC_ORGAO_EXEC"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("AB" & Linha)

.Application.Selection.Find.Text = "#COD_UN_ORCAMENTARIA"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("C" & Linha)

.Application.Selection.Find.Text = "#DESC_UN_ORCAMENTARIA"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("AC" & Linha)

.Application.Selection.Find.Text = "#PROGRAMA_N"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("AD" & Linha)

.Application.Selection.Find.Text = "#DESC_PROGRAMA"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("AE" & Linha)

.Application.Selection.Find.Text = "#NAT_DESP_NUM"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("AN" & Linha)

.Application.Selection.Find.Text = "#DESC_NAT_DESP"
.Application.Selection.Find.Execute
.Application.Selection.Range = Sheets("Plan2").Range("AO" & Linha)

'.SaveAs2 Filename:="J:\! NGI\NRPRO\Cheklist " & " - " & Num & "_" & Instrumento & "_" & UG, FileFormat:=wdFormatDocumentDefault

.Application.Quit


Linha = Linha + 1


End With

Set DOC = Nothing
Set Word = Nothing

MsgBox ("Finalizado")

End Sub
Basole
Basole Geek Registrado
945 Mensagens 596 Curtidas
#2 Por Basole
13/09/2019 - 10:29
Vejas se e isso aue deseja:

[code=vb]
' ....................................

With .Application.Dialogs(wdDialogFileSaveAs)
.Name = "J:\! NGI\NRPRO\Cheklist " & " - " & Num & "_" & Instrumento & "_" & UG
.Show
End With

'..............................................

[/code]
Click em Curtir se a resposta foi útil. boa.gif Dê retorno por favor. Se resolveu, atencao_regras.gif Altere o Titulo como [ Resolvido ] comemorando.gif
TheMenestrel
TheMenestrel Novo Membro Registrado
2 Mensagens 1 Curtida
#3 Por TheMenestrel
20/09/2019 - 13:11
Basole disse:
Vejas se e isso aue deseja:

[code=vb]
' ....................................

With .Application.Dialogs(wdDialogFileSaveAs)
.Name = "J:\! NGI\NRPRO\Cheklist " & " - " & Num & "_" & Instrumento & "_" & UG
.Show
End With

'..............................................

[/code]



Olá, boa tarde.

Primeiramente, obrigado pelo auxílio.

Consegui resolver dessa forma:


Set dlgSaveAs = .Application.FileDialog(FileDialogType:=msoFileDialogSaveAs)
dlgSaveAs.Show
dlgSaveAs.Execute

.Application.Quit False


o False no Quit foi necessário, pois ele estava sobrescrevendo o arquivo original, que não poderia ocorrer.

Valeu novamente!

Abraços!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal