Ir para conteúdo
Fórum Script Brasil
  • 0

Visual Basic No Word 2


Guest Roger Robert Kock

Pergunta

Guest Roger Robert Kock

Olá, eu pedi uma ajuda similar a uns dias atrás, gostaria de agora fazer mais algumas implementações, misturei o texto da ajuda antiga com a nova, para poder ficar fácil de entender:

Gostaria de pedir a ajuda de vocês para o seguinte caso:

Tenho vários documentos do Microsoft Word em casa, que se referem a leis e diretrizes que tem de ser atualizadas de 3 em 3 meses, estes mesmos documentos tem um cabeçalho com a data da última modificação (colocada manualmente pela pessoa que o modificou por último).

Por exemplo:

Última modificação: 30/12/2003

Porém nem sempre as pessoas que modificam estes documentos observam a data de sua última modificação no cabeçalho, e acabam salvando estes documentos sem alterar esta data.

Gostaria de saber se é possível fazer com que o Word compare a data da última modificação (aquela posta manualmente no cabeçalho) com a atual, e se já tiverem passado mais de 3 meses desde a última modificação, ele exiba, assim que o arquivo for aberto uma janelia pop-up, dizendo que o documento precisa ser atualizado.

Gostaria também de pedir uma ajuda nos quesitos seguintes:

O Documento contém mais dois campos: “Data: “ e “Próxima validação:” ficando assim, por exemplo:

1 - Última modificação: 30/12/2003

2 - Data: 15/01/2004

3 - Próxima validação: 30/03/2004

Gostaria de saber, como posso fazer para, quando a diferença da data de abertura do arquivo (data do dia de hoje) com o campo "Data :" for superior a uma semana, o Word irá perguntar se deseja alterar a data (do campo "Data:")para a data de abertura (data do dia de hoje), e caso sim, escreverá no campo “Data:”, a data do dia de hoje, apagando a antiga; caso não, não fará nada.

E o Word deverá escrever automaticamente no campo “Próxima Validação:”, assim que o documento for salvo e aberto novamente, a data da “Última Modificação:” (no caso do exemplo 30/12/2003), somada de 3 meses (que fica como no exemplo: 30/03/2004).

Se for possível, peço que alguém me explique como fazer, desde já agradeço!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Então, no caso o código ficaria assim:

Private Sub Document_Open()
   Dim DataUlt As Date, Data As Date
   Dim Hoje As Date
   
   Hoje = Now()
   Selection.Find.Execute "Última modificação:"
   If Selection.Find.Found Then
       Selection.MoveRight unit:=wdCharacter, Count:=1
       Selection.MoveRight unit:=wdCharacter, Count:=11, Extend:=wdExtend
       DataUlt = CDate(Trim(Selection.Text))
       If DateSerial(Year(Hoje), Month(Hoje), Day(Hoje)) > DateSerial(Year(DataUlt), Month(DataUlt) + 3, Day(DataUlt)) Then
           MsgBox "Atualize o documento!"
       End If
   End If
   Selection.MoveRight unit:=wdCharacter, Count:=1
   Selection.Find.Execute "Data:"
   If Selection.Find.Found Then
       Selection.MoveRight unit:=wdCharacter, Count:=1
       Selection.MoveRight unit:=wdCharacter, Count:=11, Extend:=wdExtend
       Data = CDate(Trim(Selection.Text))
       If DateSerial(Year(Hoje), Month(Hoje), Day(Hoje)) > DateSerial(Year(Data), Month(Data), Day(Data) + 7) Then
            If MsgBox("Deseja alterar a data do documento?", vbYesNo) = vbYes Then
                Selection.TypeText Space(1) & Date
            End If
       End If
   End If

   Selection.MoveRight unit:=wdCharacter, Count:=1
   Selection.Find.Execute "Próxima validação:"
   If Selection.Find.Found Then
       Selection.MoveRight unit:=wdCharacter, Count:=1
       Selection.MoveRight unit:=wdCharacter, Count:=11, Extend:=wdExtend
       Selection.TypeText Space(1) & FormatDateTime(DateSerial(Year(DataUlt), Month(DataUlt) + 3, Day(DataUlt)), vbShortDate)
   End If
End Sub

ok?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...