Compartilhar via

Juntar arquivos - Macro não atualiza o path.

Anônima
2012-03-30T18:20:41+00:00

Olá pessoal, boa tarde...

Estou com o seguinte problema:  tenho 20 pastas (diretorios) cada um com diversos arquivos do word (.doc) que são gerados automaticamente por um programa de terceiro.

Como não é possivel prever qtos arquivos vão ser gerados por esse programa, devido cada etapa de atualização ele gerar um numero "x" de arquivos, ficou dificil de ficar abrindo um por um para juntar todos num unico arquivo .doc.

Desta forma eu consegui na internet uma macro que junta os arquivos automaticamente conforme descrito abaixo:

Porem eu ainda tenho que ficar copiando todos os arquivos para a pasta "C:\pastaDocs" para poder juntar todos, o que pode me levar ao erro.

Gostaria de saber como complementar essa macro para que, quando eu abrir o word na pasta especificada a macro possa pegar o "path" da pasta e juntar todos os arquivos da mesma. 

Desde já agradeço a atenção.

Private Sub juntarDocs()

'

' juntarDocs Macro

'

Dim nomeArquivo As String

Dim r As Range

Dim doc As Document

Const pastaDocs = "C:\pastaDocs"

Set doc = ActiveDocument

nomeArquivo = Dir$(pastaDocs & "\*.doc")

Do

Set r = doc.Bookmarks("\EndOfDoc").Range

If r.End > 0 Then

r.InsertBreak wdSectionBreakNextPage

r.Collapse wdCollapseEnd

End If

r.InsertFile (pastaDocs & "" & nomeArquivo)

nomeArquivo = Dir$()

Loop Until nomeArquivo = ""

End Sub

Microsoft 365 e Office | Word | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

5 respostas

Classificar por: Mais útil
  1. Anônima
    2012-04-02T11:47:48+00:00

    Olá Luiz....

    Resolveu em parte. Quando abro uma determinada pasta no explorer e depois abro o word, e mando executar a macro ela da erro 5455 - o nome do diretorio não é valido.

    Descobri o seguinte, se eu abro o word e mando gravar um arquivo em branco na pasta ele executa a macro perfeitamente.

    Ou seja, qdo apenas abro o word, ele ainda continua com o path padrão, não esta enxergando a pasta que esta aberta.

    Isso tem como resolver?

    Obrigado.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2012-04-01T00:04:06+00:00

    Olá,

    em vez de usar uma constante com o caminho da pasta, use uma variável que pegue a pasta atual:

    Dim pastaDocs As String

    Set doc = ActiveDocument

    pastaDocs = doc.Path

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2012-03-31T22:54:21+00:00

    Olá Bruno...

    Esta não é a solução, pois como eu disse, pode me levar ao erro visto ser diversas pastas e assim eu teria que mudar na macro cada vez que mudasse de pasta.

    Preciso achar uma solução que automatize a macro e ela possa pegar o "path" da pasta onde estou automaticamente.

    Obrigado.

    Esta resposta foi útil?

    0 comentários Sem comentários
  4. Anônima
    2012-03-30T19:47:02+00:00

    Olá,

    Na linha Const pastaDocs = "C:\pastaDocs", altere o caminho de "C:\pastaDocs" para o caminho desejado. Em seguida, altere também nas linhasnomeArquivo = Dir$(pastaDocs & "\.doc"), r.InsertFile (pastaDocs & "" & nomeArquivo) para o mesmo caminho que você colocou na linhaConst pastaDocs = "C:\pastaDocs".*

    Espero ter ajudado.

    Até mais!!!

    Esta resposta foi útil?

    0 comentários Sem comentários
  5. Excluído

    Essa resposta foi excluída devido a uma violação de nosso Código de Conduta. A resposta foi denunciada manualmente ou identificada por meio da detecção automatizada antes da ação ser tomada. Consulte nosso Código de conduta para obter mais informações.


    Os comentários foram desabilitados. Saiba mais