Ai pessoal estou com um serio problema, na hora que eu vou fazer um relatório eu não consigo incluir os valores das variaveis no word , sou novo em VB , não sei o que esta acontecendo , na verdade não sei como é que tenho que deixar as variaveis a serem substituidas no word. segue o codigo.... ME AJUDEM é de extrema importancia para meu trabalho!
Pergunta
Angelo Augusto
Ai pessoal estou com um serio problema, na hora que eu vou fazer um relatório eu não consigo incluir os valores das variaveis no word , sou novo em VB , não sei o que esta acontecendo , na verdade não sei como é que tenho que deixar as variaveis a serem substituidas no word. segue o codigo.... ME AJUDEM é de extrema importancia para meu trabalho!
Private Sub CB_relatorioParcial_Click()
Dim Word As Object
Dim TempoImp As Date
Dim sair As Boolean
Set Word = CreateObject("Word.Application")
'Abre o documento
Word.Documents.Open "C:\relatorioparcial.doc"
'não mostra o documento para usuario
Word.Visible = False
'Seleciona o documento inteiro
Word.Documents("relatorioparcial.doc").Select
If OB_IE.Value = True Then
FAM = OB_IE.Caption
ElseIf OB_SE.Value = True Then
FAM = OB_SE.Caption
ElseIf OB_AMV.Value = True Then
FAM = OB_AMV.Caption
ElseIf OB_SC.Value = True Then
FAM = OB_SC.Caption
End If
If OB_AFJ.Value = True Then
SubFAM = OB_AFJ.Caption
ElseIf OB_COMPONENTES.Value = True Then
SubFAM = OB_COMPONENTES.Caption
ElseIf OB_CONSTRUCAO.Value = True Then
SubFAM = OB_CONSTRUCAO.Caption
ElseIf OB_CORRECAO.Value = True Then
SubFAM = OB_CORRECAO.Caption
ElseIf OB_DEMOLICAO.Value = True Then
SubFAM = OB_DEMOLICAO.Caption
ElseIf OB_DORMENTE.Value = True Then
SubFAM = OB_DORMENTE.Caption
ElseIf OB_LASTRO.Value = True Then
SubFAM = OB_LASTRO.Caption
ElseIf OB_TRILHO.Value = True Then
SubFAM = OB_TRILHO.Caption
ElseIf OB_REMODELACAO.Value = True Then
SubFAM = OB_REMODELACAO.Caption
ElseIf OB_Nenhuma.Value = True Then
SubFAM = OB_Nenhuma.Caption
End If
' chama rotina para substituicao
Call Substitui_Var("@familia", OB_IE.Caption)
Call Substitui_Var("@subfamilia", OB_Nenhuma.Caption)
Call Substitui_Var("@item", CB_Item.Text)
Call Substitui_Var("@especificacao", RTB_Especificacao.Text)
' Salva o documento com um novo nome
ObjWord.ActiveDocument.SaveAs (relatorioparcial.doc)
'Imprime o documento aberto
Word.PrintOut True, True
TempoImp = Time
'testa se ouve erro de impressão
While Word.BackGroundPrintingStatus <> 0 And Not sairLaco
If Minute(Time - TempoImp) > 1 Then
Resp = MsgBox("O Word est´pa levando muito tempo para imprimir!!!" & vbCrLf & "Deseja encerrar?", vbYesNo)
If Resp = vbYes Then
sair = True
Else
TempoImp = Time
End If
End If
Wend
Word.Quit
MsgBox "Documento Salvo e impresso!!"
'Encerra o word
Word.Quit
' libera memoria
Set Word = Nothing
Exit Sub
'trata_erro:
MsgBox "Ocorreu um erro durante o processamento " & " - Erro numero : " & Err.Number
End Sub
'a rotina que faz a substituição das variáveis do texto
Private Sub Substitui_Var(Header As String, Data As String)
Dim Word As Object
Set Word = CreateObject("Word.Application")
'Abre o documento
Word.Documents.Open "C:\relatorioparcial.doc"
'não mostra o documento para usuario
Word.Visible = False
'Seleciona o documento inteiro
Word.Documents("relatorioparcial.doc").Select
With Word.Selection.Find
.ClearFormatting
.Text = Header
.Execute Forward:=True
End With
Clipboard.Clear /// está DANDO ERRO AQUI
Clipboard.SetText (Data)
Word.Selection.Paste
Clipboard.Clear
End Sub
EU não SEI O QUE EU TENHO que COLOCRA NO WORD PARA FAZER ISSO FUNCIONAR POIS ABRE O ARQUIVO SELECIONA MAS não TROCA OS VALORES..
MUITO OBRIGADO
Editado por Angelo AugustoLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.