Boa Tarde,
deparei-me com outro problema no uso do mesmo código para abrir documentos diferentes em Word
ou seja se o documento em Word usar todos os Bookmarks do código, abre e grava
mas se tentar abrir outro documento que só use parte dos Bookmarks que estão no código do formulário, dá erro
ora como uso o mesmo form para abrir documentos com texto diferente, só funciona se usar a totalidade dos Bookmarks, mas em alguns documentos uso por exemplo, o nome, morada nº passaporte etc, e noutros documentos, só quero usar por exemplo só o nome.
alguém tem ideia se é possível, ou tenho de usar várias caixas de combinação, a ideia era usar apenas uma caixa de combinação para escolher o documento que pretendo.
segue o código para melhor entendimento
Private Sub gerarDoc_Click()
'ahteixeira (2016) para MaximoAccess
'Adaptado a partir do exemplo do colega Avelino Sampaio
'veja a dica 75 - http://usandoaccess.com.br/dicas/dicas-praticas-de-access-parte-8.asp?id=1&idlista=234#inicio
If IsNull(Me.cartaSel) Then MsgBox "Escolha o modelo da carta para gerar.", vbInformation, "": Exit Sub
Dim wdApl As Object
Dim strModelo As String
Set wdApl = CreateObject("Word.Application")
'--------------------------
'Abre o arquivo do Word
wdApl.Documents.Open FileName:="G:\GestaoProcessosVistosConsulares\Aplicacao\BD\DocWordTemplate" & "\" & Me.cartaSel.Column(2)
With wdApl
'Posiciona o cursor no INDICADOR I1_IDVisto ... e preenche
.ActiveDocument.Bookmarks("I1_IDVisto").Select: .Selection.Text = Nz(Me.IDVisto)
.ActiveDocument.Bookmarks("I2_NºORDEM").Select: .Selection.Text = Nz(Me.NºORDEM)
.ActiveDocument.Bookmarks("I3_PassaporteNº").Select: .Selection.Text = Nz(Me.PassaporteNº)
'.ActiveDocument.Bookmarks("I4_NOME").Select: .Selection.Text = Me.NOME
.ActiveDocument.Bookmarks("I5_NOMECompleto").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I6_DataNascimento").Select: .Selection.Text = Me.DataNascimento
.ActiveDocument.Bookmarks("I7_Morada").Select: .Selection.Text = Me.MORADA
.ActiveDocument.Bookmarks("I7_C_POSTAL").Select: .Selection.Text = Me.C_POSTAL
.ActiveDocument.Bookmarks("I8_FREGUESIA").Select: .Selection.Text = Me.FREGUESIA
.ActiveDocument.Bookmarks("I9_CONCELHO").Select: .Selection.Text = Me.CONCELHO
.ActiveDocument.Bookmarks("I10_EstCivil").Select: .Selection.Text = Me.EstCivil
.ActiveDocument.Bookmarks("I11_FuncVisto").Select: .Selection.Text = Me.FuncVisto
.ActiveDocument.Bookmarks("I12_PassaporteDataEmissao").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I13_EntEmissao").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I14_ValiCTProm").Select: .Selection.Text = Me.ValiCTProm
.ActiveDocument.Bookmarks("I15_ValorCTProm").Select: .Selection.Text = Me.ValorCTProm
.ActiveDocument.Bookmarks("I20_NomeCompleto2").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I21_NºPassaporte2").Select: .Selection.Text = Nz(Me.PassaporteNº)
.ActiveDocument.Bookmarks("I22_PassaporteDataEmissao2").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I23_EntEmissao2").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I24_NomeCompleto3").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I25_NºPassaporte3").Select: .Selection.Text = Nz(Me.PassaporteNº)
.ActiveDocument.Bookmarks("I26_PassaporteDataEmissao3").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I27_EntEmissao3").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I28_NomeCompleto4").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I29_NºBI_CC").Select: .Selection.Text = Nz(Me.BI)
.ActiveDocument.Bookmarks("I30_DataValidadeBI").Select: .Selection.Text = Me.DataValidadeBI
.ActiveDocument.Bookmarks("I31_NomeCompleto5").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I32_NºBI_CC2").Select: .Selection.Text = Nz(Me.BI)
.ActiveDocument.Bookmarks("I33_Morada2").Select: .Selection.Text = Me.MORADA
.ActiveDocument.Bookmarks("I34_C_Postal2").Select: .Selection.Text = Me.C_POSTAL
.ActiveDocument.Bookmarks("I35_Freguesia2").Select: .Selection.Text = Me.FREGUESIA
.ActiveDocument.Bookmarks("I36_DataAdmissão").Select: .Selection.Text = Me.DataAdmissão
'---------------------------------------------------------
'Salva o documento preenchido em lugar diferente
'---------------------------------------------------------
'strlocal = "G:\GestaoProcessosVistosConsulares\DocWordGerado" & "\" & Me.cartaSel.Column(1) & "-" & Nz(Replace(Me.NºORDEM, " ", "")) & "-" & Format(Now, "hhmmss") & ".doc"
strlocal = "G:\GestaoProcessosVistosConsulares\DocWordGerado" & "\" & Nz(Replace(Me.NºORDEM, " ", "")) & "-" & Format(Now, "hhmmss") & "-" & Me.cartaSel.Column(1) & ".doc"
.ActiveDocument.SaveAs strlocal ', Password:="123"
'------------------
'Fecha o documento
'------------------
.ActiveDocument.Close
'-------------
'Fecha o Word
'-------------
.Quit
End With
'Limpa a memória
Set wdApl = Nothing
'---------------------------------------------------------
'Abre o documento preechido para visualização e impressão
'---------------------------------------------------------
Application.FollowHyperlink strlocal
End Sub
deparei-me com outro problema no uso do mesmo código para abrir documentos diferentes em Word
ou seja se o documento em Word usar todos os Bookmarks do código, abre e grava
mas se tentar abrir outro documento que só use parte dos Bookmarks que estão no código do formulário, dá erro
ora como uso o mesmo form para abrir documentos com texto diferente, só funciona se usar a totalidade dos Bookmarks, mas em alguns documentos uso por exemplo, o nome, morada nº passaporte etc, e noutros documentos, só quero usar por exemplo só o nome.
alguém tem ideia se é possível, ou tenho de usar várias caixas de combinação, a ideia era usar apenas uma caixa de combinação para escolher o documento que pretendo.
segue o código para melhor entendimento
Private Sub gerarDoc_Click()
'ahteixeira (2016) para MaximoAccess
'Adaptado a partir do exemplo do colega Avelino Sampaio
'veja a dica 75 - http://usandoaccess.com.br/dicas/dicas-praticas-de-access-parte-8.asp?id=1&idlista=234#inicio
If IsNull(Me.cartaSel) Then MsgBox "Escolha o modelo da carta para gerar.", vbInformation, "": Exit Sub
Dim wdApl As Object
Dim strModelo As String
Set wdApl = CreateObject("Word.Application")
'--------------------------
'Abre o arquivo do Word
wdApl.Documents.Open FileName:="G:\GestaoProcessosVistosConsulares\Aplicacao\BD\DocWordTemplate" & "\" & Me.cartaSel.Column(2)
With wdApl
'Posiciona o cursor no INDICADOR I1_IDVisto ... e preenche
.ActiveDocument.Bookmarks("I1_IDVisto").Select: .Selection.Text = Nz(Me.IDVisto)
.ActiveDocument.Bookmarks("I2_NºORDEM").Select: .Selection.Text = Nz(Me.NºORDEM)
.ActiveDocument.Bookmarks("I3_PassaporteNº").Select: .Selection.Text = Nz(Me.PassaporteNº)
'.ActiveDocument.Bookmarks("I4_NOME").Select: .Selection.Text = Me.NOME
.ActiveDocument.Bookmarks("I5_NOMECompleto").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I6_DataNascimento").Select: .Selection.Text = Me.DataNascimento
.ActiveDocument.Bookmarks("I7_Morada").Select: .Selection.Text = Me.MORADA
.ActiveDocument.Bookmarks("I7_C_POSTAL").Select: .Selection.Text = Me.C_POSTAL
.ActiveDocument.Bookmarks("I8_FREGUESIA").Select: .Selection.Text = Me.FREGUESIA
.ActiveDocument.Bookmarks("I9_CONCELHO").Select: .Selection.Text = Me.CONCELHO
.ActiveDocument.Bookmarks("I10_EstCivil").Select: .Selection.Text = Me.EstCivil
.ActiveDocument.Bookmarks("I11_FuncVisto").Select: .Selection.Text = Me.FuncVisto
.ActiveDocument.Bookmarks("I12_PassaporteDataEmissao").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I13_EntEmissao").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I14_ValiCTProm").Select: .Selection.Text = Me.ValiCTProm
.ActiveDocument.Bookmarks("I15_ValorCTProm").Select: .Selection.Text = Me.ValorCTProm
.ActiveDocument.Bookmarks("I20_NomeCompleto2").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I21_NºPassaporte2").Select: .Selection.Text = Nz(Me.PassaporteNº)
.ActiveDocument.Bookmarks("I22_PassaporteDataEmissao2").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I23_EntEmissao2").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I24_NomeCompleto3").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I25_NºPassaporte3").Select: .Selection.Text = Nz(Me.PassaporteNº)
.ActiveDocument.Bookmarks("I26_PassaporteDataEmissao3").Select: .Selection.Text = Me.PassaporteDataEmissao
.ActiveDocument.Bookmarks("I27_EntEmissao3").Select: .Selection.Text = Me.EntEmissao
.ActiveDocument.Bookmarks("I28_NomeCompleto4").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I29_NºBI_CC").Select: .Selection.Text = Nz(Me.BI)
.ActiveDocument.Bookmarks("I30_DataValidadeBI").Select: .Selection.Text = Me.DataValidadeBI
.ActiveDocument.Bookmarks("I31_NomeCompleto5").Select: .Selection.Text = Me.NOMECompleto
.ActiveDocument.Bookmarks("I32_NºBI_CC2").Select: .Selection.Text = Nz(Me.BI)
.ActiveDocument.Bookmarks("I33_Morada2").Select: .Selection.Text = Me.MORADA
.ActiveDocument.Bookmarks("I34_C_Postal2").Select: .Selection.Text = Me.C_POSTAL
.ActiveDocument.Bookmarks("I35_Freguesia2").Select: .Selection.Text = Me.FREGUESIA
.ActiveDocument.Bookmarks("I36_DataAdmissão").Select: .Selection.Text = Me.DataAdmissão
'---------------------------------------------------------
'Salva o documento preenchido em lugar diferente
'---------------------------------------------------------
'strlocal = "G:\GestaoProcessosVistosConsulares\DocWordGerado" & "\" & Me.cartaSel.Column(1) & "-" & Nz(Replace(Me.NºORDEM, " ", "")) & "-" & Format(Now, "hhmmss") & ".doc"
strlocal = "G:\GestaoProcessosVistosConsulares\DocWordGerado" & "\" & Nz(Replace(Me.NºORDEM, " ", "")) & "-" & Format(Now, "hhmmss") & "-" & Me.cartaSel.Column(1) & ".doc"
.ActiveDocument.SaveAs strlocal ', Password:="123"
'------------------
'Fecha o documento
'------------------
.ActiveDocument.Close
'-------------
'Fecha o Word
'-------------
.Quit
End With
'Limpa a memória
Set wdApl = Nothing
'---------------------------------------------------------
'Abre o documento preechido para visualização e impressão
'---------------------------------------------------------
Application.FollowHyperlink strlocal
End Sub
- Anexos
- Capturar.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (67 Kb) Baixado 27 vez(es)