none
Como numerara memorandos e salvar com nome e formato especifico RRS feed

  • Pergunta

  • Queria saber que codigo VBA para word 2007 e 2016 para os seguintes propositos, se possivel:

    1-preciso numerar meus memorandos automaticamente de forma que nao seja repetida um numero anterior

    Exemplo:

    No caminho: C:\Memorandos\2017

    1 Memorando nº: 001/2017
    2 Memorando nº: 002/2017

    ...

    3 Memorando nº: 599/2017
    trocou o ano = 2018 C:\Memorandos\2018
    4 Memorando nº:001/2018

    e assim por diante, onde cada ano é dividido por uma pasta nova. Se nao der pra separar por pastas ao ano tudo bem.

    2- O formato de nome de arquivo deveria seguir este padrao para ser salvo:

    "Memo (n memorando com ano sem os parenteses) - e nome do arquivo a ser escolhido(ou assunto).rtf”

    Isto tudo a partir de um documento modelo *.dot ou *.dotx




    domingo, 2 de abril de 2017 02:37

Todas as Respostas

  • Eliéser,

    Atualmente, como se chamam os arquivos de memorando?

    Explico: vou sugerir uma rotina que transforme o nome de um jeito para outro, mas preciso saber se há algum padrão de como os nomes se encontram atualmente.


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    domingo, 2 de abril de 2017 13:24
    Moderador
  • Não existe padrao ainda. Pois trabalho em uma ESF e la ainda nao possui controle dos memos emitidos. por isto eu to atras deste tipo de rotina pra tentar organizar estes memorandos.

    os pc usam WIN7 e WIN10; e Word 2007 e Word 2016

    no Manual de redacao oficial da presidencia da republica-2002(http://www4.planalto.gov.br/centrodeestudos/assuntos/manual-de-redacao-da-presidencia-da-republica/manual-de-redacao.pdf/view), existe um modelo de nome destes arquivos. no caso de oficios  seriam assim: "Of. 123 - relatório produtividade ano 2002", preferencialmete salvo em Rich Text.

    a minha ideia era ter um arquivo em dot ou dotx com esta configuracao pra abrindo o arquivo a primeira vez ele ja numerar o arquivo em, 001/ano atual, e que resetasse a numeracao a cada troca de ano.

    gostaria tambem de orientacao de como criar o arquivo modelo e salvar ou fazer alteracoes, de formatacao do texto, cabecalho e layout de pagina, mesmo depois de ja ter sido inserido o codigo no modelo e ja estar sendo usado

    domingo, 2 de abril de 2017 16:52
  • Você já tem algum memorando salvo no diretório de destino?

    Qual é o critério para que esse processo de renomear ocorra?

    Por exemplo: a macro irá, arbitrariamente, pegar o primeiro arquivo e chamar de 1 Memorando nº: 001/2017? Como ela vai saber que esse arquivo é o número 1? A partir do nome do arquivo ou pelo seu conteúdo?


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    segunda-feira, 3 de abril de 2017 19:37
    Moderador
  • Na verdade eh uma mescla dos dois sendo que o criterio seria o seguinte:

    MEMO (ano atual)(nºdo memorando)-(assunto do memorando).rtf

    EX: MEMO 2017001-Insumos Urgentes.rtf
          MEMO 2017002-Compras.rtf
          MEMO 2017003-Solitação de manutenção de computadores.rtf

    um modelo de memorando que eu estava fazendo, gostaria q fosse um arquivo dot ou dotx para quando abrir ele ja criar um novo documento que abriria campos pra ser inserido o assunto, o nome  do emissor, o cargo do emissor, e o espaco reservado para o texto.

    Só que no documento seria mais ou menos assim:

    Memorando nº 001/2017

    De: Instituicao A

    Para: Instituicao B

    assunto: Insumos Urgentes

    TextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTexto

    TextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTexto

    TextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTextoTexto

                                                                           nome do emissor

                                                                           cargo do emissor

    gostaria de saber se o que estou solicitando é possivel? tem algum tutorial pra fazer isto?

    terça-feira, 4 de abril de 2017 03:49
  • Eliéser,

    Atualmente, como se chamam os arquivos de memorando?

    Explico: vou sugerir uma rotina que transforme o nome de um jeito para outro, mas preciso saber se há algum padrão de como os nomes se encontram atualmente.


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    estou ainda aguardando ansiosamente a sugestão.
    quinta-feira, 11 de maio de 2017 06:08
  • No fim eu mesmo achei a minha solução, obrigado a todos que tentaram ajudar. Eis a descrição do que foi feito abaixo.

    Parte do problema foi resolvido usando instruções do Forum Como criar uma numeracao automatica para documentos Word. Segue as instruções:

    Para começar, crie um arquivo texto com a estrutura de um arquivo .INI do Windows:
    [Valores]
    Ofícios=0
    Memorandos=0
    Cartas=0
    ...
    Em seguida, abra o modelo usado para a criação do documento e crie um indicador (bookmark) "com o nome NumDoc",(grifo meu) no local onde deseja que o número seja apresentado. 
    Crie uma nova macro com nome AutoNew (que será executada sempre que um novo documento for criado.
    ...

    O exemplo abaixo procura no arquivo Numeração.txt pelo item Ofícios no grupo Valores, passa o valor contido para o indicador NumDoc, soma 1 ao indicador, 
    devolve o novo valor a Ofícios e atualiza o arquivo de numeração. Em seguida, insere o número na posição solicitada e salva o novo documento (já numerado) 
    com o nome de arquivo contendo o número do documento.

    ...

    ====================================================================
    CODE

    Sub AutoNew()
    ' Abre o arquivo de numeração e pega o número do último Ofício
        NumDoc = System.PrivateProfileString("C:\Numeração.Txt", "Valores", "Ofícios")
    ' Testa se já tem Ofícios. 
        If NumDoc = "0" Then
            NumDoc = 1
        Else
            NumDoc = NumDoc + 1
        End If
    ' Atualiza o número de Ofícios
        System.PrivateProfileString("C:\Numeração.txt", "Valores",  "Ofícios") = NumDoc
    ' Atualiza o valor do indicador
        ActiveDocument.Bookmarks("NumDoc").Range.InsertBefore Format(NumDoc, "00#")
    ' Salva o arquivo
        ActiveDocument.SaveAs FileName:="SeuCaminho" & "Ofício"Format(NumDoc, "00#")
    End Sub

    ====================================================================Se você não precisa mostrar o número no documento mas quer apenas salvá-lo com esse número, não é necessário criar o indicador no modelo e a penúltima linha do 
    código pode ser excluída.

    Nota: existem algumas sugestões de que estes valores deveriam ser armazenados no Registry em vez de um arquivo texto. Se o Registry for usado, o usuário estará 
    preso a uma máquina específica. Por exemplo, se o modelo for usado por mais de um departamento (ou em mais de uma máquina), o arquivo texto pode ser salvo em 
    uma área de acesso comum da rede e o Registry não.

    Idem se o usuário fizer seu logon em mais de uma máquina da rede: o arquivo texto pode estar em sua área de usuário da rede e ele terá acesso a partir de qualquer 
    máquina. O Registry é de uma máquina específica.

    Mesmo que o arquivo texto seja salvo localmente, no caso de uma atualização de máquina é só copiar o arquivo para a nova máquina e continuar trabalhando. A cópia 
    das informações do Registry é bem mais complicada.

    Outro ponto que deve ser levado em consideração: e se o usuário, por qualquer razão, necessitar corrigir manualmente a numeração (um documento emitido sem o uso do modelo, por exemplo)? A alteração em um arquivo texto é simples enquanto que qualquer modificação no Registry pode levar a problemas se ele não tiver um bom conhecimento.

    Dai em diante para fzer as outras alteracoes eu modifiquei o CODE para ficar como e queria e como foi possivel ser feito

    ====================================================================
    CODE ALTERADO

    Sub AutoNew()
    ' Abre o arquivo de numeração e pega o número do último Ofício
        NumDoc = System.PrivateProfileString("C:\Users\xxxxx\Documents\Memorandos\Numeração.txt", "Valores", "Memorandos")
    ' Testa se já tem Ofícios.
        If NumDoc = "0" Then
            NumDoc = 1
        Else
            NumDoc = NumDoc + 1
        End If
    ' Atualiza o número de Ofícios
        System.PrivateProfileString("C:\Users\xxxxx\Documents\Memorandos\Numeração.txt", "Valores", "Memorandos") = NumDoc
    ' Atualiza o valor do indicador
        ActiveDocument.Bookmarks("NumDoc").Range.InsertBefore Format(NumDoc, "00#") & "/" & Format(Now, "yyyy") & "-CESF"
    ' Salva o arquivo
        ActiveDocument.SaveAs FileName:="C:\Users\xxxxx\Documents\Memorandos\Memo " & Format(NumDoc, "00#") & "_" & Format(Now, "yyyy") & ".rtf"
    End Sub

    Só nao consegui criar uma forma de usar o assunto pra anexar ao codigo como parte do nome do arquivo para salvar. Também seria muito bom que se o código fizesse a virada do ano em uma nova subpasta com o nome do ano e os arquivos salvos dentro, seria d+.

    Consegui a numeracao automatica, e parcialmente o formato do nome do arquivo como eu queria.

    Então ficou no final assim o arquivo quando salvo:

    Memo 001_2017.rtf

    Já o indicador NumDoc que dá a identificação do memorando ficou assim:

    001/2017-CESF (CESF- é a sigla usada logo apos a numeracao pra identificar o emissor do memorando).

    Novamente obrigado por toda ajuda a boa disposição daqueles que se propuseram  ajudar.

    Postei a minha experiencia pq alguem que vier a consultar este forum pode estar procurando a mesma resposta que eu. 


    domingo, 14 de maio de 2017 01:43
  • Meu amigo, eu tentei fazer isso mas não deu certo.

    Você pode me passar um passo a passo para eu tentar aqui.

    Desde já agradeço

    quarta-feira, 24 de janeiro de 2018 14:23