Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabiana_Santos

a minha procedure de substituiçao está .

Recommended Posts

Bem, pessoal... sei que algum de vocês poderá me ajudar.É o seguinte:

 

 

1.Tenho um formulário com algumas opções (cada opção é um doc do word).Ao clicar na opção desejada deve-se abrir o doc principal e subsituir as variáveis que serão puxadas do meu banco de cadastro de clientes. Para isso , foi criada uma procedure de substituição que permitirá que as variáveis sejam trocadas pelos dados preenchidos no form de dados como : nome,endereço,telefone,etc...

Vejam o código:

 

 

 

Private Sub comvinculo_Click()

Dim temp As String

Dim Objword As Object

Set Objword = New word.Application

 

word.Documents.Open ("T:\PROJETO ORIGINAL\Topicos 28.11\inicialcomvinculo.doc")

 

Call Substitui_Var("@cvvara", (Dados.Text18.Text))

Call Substitui_Var("@cvcliente", (Dados.Text2.Text))

Call Substitui_Var("@cvnacionalidade", (Dados.Text3.Text))

Call Substitui_Var("@cvestadocivil", (Dados.Text3.Text))

Call Substitui_Var("@cvprofissao", (Dados.Text5.Text))

Call Substitui_Var("@cvdatanascimento", (Dados.Text4.Text))

Call Substitui_Var("@cvnumerorg", (Dados.Text5.Text))

Call Substitui_Var("@cvnumerocpf", (Dados.Text4.Text))

Call Substitui_Var("@cvnumeroctps", (Dados.Text10.Text))

Call Substitui_Var("@cvserie", (Dados.Text5.Text))

Call Substitui_Var("@cvendereco", (Dados.Text6.Text))

Call Substitui_Var("@cvbairro", (Dados.Text7.Text))

Call Substitui_Var("@cvcidade", (Dados.Text7.Text))

Call Substitui_Var("@cvestado", (Dados.Text7.Text))

Call Substitui_Var("@cvnumerocep", (Dados.Text11.Text))

Call Substitui_Var("@cvadverso", (Dados.Text1.Text))

Call Substitui_Var("@cvcnpj", (Dados.Text12.Text))

Call Substitui_Var("@cvenderecob", (Dados.Text13.Text))

Call Substitui_Var("@cvbairrob", (Dados.Text2.Text))

Call Substitui_Var("@cvcidadeb", (Dados.Text14.Text))

Call Substitui_Var("@cvestadob", (Dados.Text15.Text))

Call Substitui_Var("@cvnumerocepb", (Dados.Text20.Text))

Call Substitui_Var("@cvdataadmissao", (Dados.Text1.Text))

Call Substitui_Var("@cvfuncao", (Dados.Text5.Text))

Call Substitui_Var("@cvultimosalario", (Dados.Text2.Text))

Call Substitui_Var("@cvdataatual", (Dados.Text19.Text))

Call Substitui_Var("@cvdataadmissao", (Dados.Text19.Text))

Objword.Quit

MsgBox "contrato Gerado!!!"

Set Objword = Nothing

 

Exit Sub

End Sub

 

 

 

AGORA VEJAM A PROCEDURE A SER CHAMADA NA HORA DA SUBSTITUIÇÃO:

 

Private Sub Substitui_Var(Header As String, data As String)

Dim temp As String

 

Dim word1 As New word.Application

Dim doc1 As word.Document

 

With word.Selection.Find

.ClearFormatting

.Text = Header

.Execute Forward:=True

End With

 

Clipboard.Clear

Clipboard.SetText (data)

 

word.Selection.Paste

Clipboard.Clear

 

End Sub

 

QUAL É O ERRO AÍ , PORQUE ESTA DANDO ERRO NA PROCEDURE SEMPRE NA MESMA LINHA , NA LINHA "WORD.SELECTION.PASTE" E AS VEZES ERRO NA LINHA "WITH WORD.SELECTION.FIND" . PORQUE?ALGUÉM PODE ME EXPLICAR PORQUE ISSO OCORREU?

 

 

2.

ESSE CÓDIGO ABAIXO NÃO MUDA NADA. A DIFERENÇA É QUE ALÉM DE ABRIR O DOC PRINCIPAL , SUBSTITUIR AS VARIÁVEIS ELE COPIA O CONTEÚDO DE UMA DAS OPÇÕES ESCOLHIDAS. COMO USO A PROCEDURE PARA TUDO, TAMBÉM ESTÁ DANDO ERRO NAQUELA LINHA QUE DISCRIMINEI ACIMA.

 

 

Private Sub opcaosemvinculo_Click()

 

Dim temp As String

Dim Objword As Object

Set Objword = New word.Application

 

word.Documents.Open "T:\PROJETO ORIGINAL\Topicos 28.1\inicialsemvinculo.doc"

 

Call Substitui_Var("@svvara", (Dados.Text18.Text))

Call Substitui_Var("@cliente", (Dados.Text2.Text))

Call Substitui_Var("svnacionalidade", (Dados.Text3.Text))

Call Substitui_Var("svestadocivil", (Dados.Text3.Text))

Call Substitui_Var("@svdatanascimento", (Dados.Text4.Text))

Call Substitui_Var("@svnumerorg", (Dados.Text5.Text))

Call Substitui_Var("@svcpfnumero", (Dados.Text4.Text))

Call Substitui_Var("@svendereço", (Dados.Text6.Text))

Call Substitui_Var("@svcidade", (Dados.Text8.Text))

Call Substitui_Var("@svestado", (Dados.Text7.Text))

Call Substitui_Var("@svcep", (Dados.Text11.Text))

Call Substitui_Var("@svadverso", (Dados.Text12.Text))

Call Substitui_Var("@svcnpj", (Dados.Text12.Text))

Call Substitui_Var("@svendereço2", (Dados.Text13.Text))

Call Substitui_Var("@bairro2", (Dados.Text2.Text))

Call Substitui_Var("@cidade2", (Dados.Text14.Text))

Call Substitui_Var("@estado2", (Dados.Text15.Text))

Call Substitui_Var("@svnumerocep", (Dados.Text2.Text))

Call Substitui_Var("@svdataadmissao", (Dados.Text1.Text))

Call Substitui_Var("@svvinculoempregaticio", (Dados.Text2.Text))

Call Substitui_Var("@svdatademissao", (Dados.Text2.Text))

Call Substitui_Var("@svultimosalario", (Dados.Text2.Text))

Call Substitui_Var("@svdataatual", (Dados.Text20.Text))

 

 

If Option1.Value = True Then

SendKeys "^{end}" 'mover o cursor até o final do arquivo original, para iniciar a inclusão

 

SendKeys "%iu" & "T:\PROJETO ORIGINAL\Topicos 28.11\OP1.doc" & "{TAB}{TAB}{TAB}{ENTER}"

 

 

 

 

ElseIf Option2.Value = True Then

SendKeys "^{end}" 'move o cursor até o final do arquivo original, para iniciar a inclusão

 

SendKeys "%iu" & "T:\PROJETO ORIGINAL\Topicos 28.11\OP2.doc" & "{TAB}{TAB}{TAB}{ENTER}"

 

ElseIf Option3.Value = True Then

SendKeys "^{end}" 'mover o cursor até o final do arquivo original, para iniciar a inclusão

 

SendKeys "%iu" & "T:\PROJETO ORIGINAL\Topicos 28.11\Topicos 28.11\OP3.doc" & "{TAB}{TAB}{TAB}{ENTER}"

 

 

ElseIf Option4.Value = True Then

SendKeys "^{end}" 'move o cursor até o final do arquivo original, para iniciar a inclusão

 

SendKeys "%iu" & "T:\PROJETO ORIGINAL\Topicos 28.11\OP4.doc" & "{TAB}{TAB}{TAB}{ENTER}"

 

SendKeys "%iu" & "T:\PROJETO ORIGINAL\Topicos 28.11\inicialcomvinculo.doc" & "{TAB}{TAB}{TAB}{ENTER}"

Objword.Quit

MsgBox "contrato Gerado!!!"

Set Objword = Nothing

End If

 

 

Exit Sub

 

Exit Sub

 

 

End Sub

 

 

3.COMO FAÇO PARA ESCOLHER O LOCAL ONDE QUERO QUE SEJA COLADO MEU DOCUMENTO (OPÇÃO ESCOLHIDA) DENTRO DO DOC PRINCIPAL , ISSO SUBSTITUINDO AS VARIÁVEIS E TUDO.

 

OBRIGADO PELA ATENÇÃO DE VOCÊS E FICO NO AGUARDO DA RESPOSTA.

 

AH, OUTRA COISA: ALGUÉM PODERIA ME PASSAR O CÓDIGO PARA IMPRIMIR RELATÓRIO NO CRYSTAL REPORTS. GOSTARIA DE CRIAR UM RELATÓRIO ONDE CONTENHA NOME,ENDEREÇO E TELEFONE DO MEU CADASTRO DE CLIENTES...MAIS UMA COISINHA:COMO FAÇO PARA LOCALIZAR DADOS PELO NOME E NÚMERO DO CPF DO CLIENTE. DO JEITO QUE FIZ É AUTOMÁTICO E BUSCA DIRETO PELO CÓDIGO, MAS ASSIM É RUIM PORQUE NINGU´RM NUNCA VAI SABER DE CABEÇA O CÓDIGO DE TODOS OS CLIENTES...

 

BEM GENTE, É ISSO...CONTO COM A AJUDA DE VOCÊS ...ISSO É REALMENTE MUITO IMPORTANTE PARA MIM. É O MEU PRIMEIRO PROJETO E ESTOU ENCONTRANDO DIFICULDADES...A MAIORIA DELAS BÁSICAS.

 

UM BEIJO PRA TODOS E AGUARDO ANCIOSAMENTE A RESPOSTA...

 

VALEU http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabiana...

posta a mensagem de erro p/ nós.

 

Se for "Object or variable not set"... bem... é porque o objeto não definido corretamente nesta rotina.

 

Veja bem, você está tentando substituir valores de um documento aberto e definido localmente numa rotina. Não adianta criar uma outra rotina e tentar fazer qualquer ação sem antes ter feito o processo de definição do objeto, neste caso abrir o arquivo.

 

P/ resolver este problema de forma simples, você continua com a primeira rotina normal, a segunda (Substitui_Var):

 

 

Private Sub Substitui_Var(Header As String, data As String, ObjWordTemp as Word.Application)

Dim temp As String

 

With ObjWordTemp.Selection.Find

.ClearFormatting

.Text = Header

.Execute Forward:=True

End With

 

Clipboard.Clear

Clipboard.SetText (data)

 

ObjWordTemp.Selection.Paste

Clipboard.Clear

 

End Sub

Daí você chama esta rotina pondo o objeto como 3º parâmetro, ex:

 

Call Substitui_Var("@cvvara", (Dados.Text18.Text),Objword)

Outra coisa, no exemplo do post acima, está utilizando word, sendo que está declarado word1 no Substitui_Var.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia !!!

 

 

Acabei de Testar o que você me mandou e o engraçado é que continua dando o mesmo erro. Já arrumei tudo o que se possa imaginar.

 

O erro é esse: " run timer error 91 - Object Variable or with block variable not set "

 

Aguardo retorno. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

falha minha... xD

 

oberve este trecho do seu código, fiz alguns acertos:

 

Dim temp As String

Dim Objword As Object

Set Objword = New word.Application

 

Objword.Documents.Open ("T:\PROJETO ORIGINAL\Topicos 28.11\inicialcomvinculo.doc")

 

Call Substitui_Var("@cvvara", (Dados.Text18.Text),Objword)

Private Sub Substitui_Var(Header As String, data As String, ObjWordTemp As Application)

  Dim temp As String

 

  With ObjWordTemp.Selection.Find

    .ClearFormatting

    .Text = Header

    .Execute Forward:=True

  End With

 

  Clipboard.Clear

  Clipboard.SetText (data)

 

  ObjWordTemp.Selection.Paste

  Clipboard.Clear

 

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.