none
Erro em tempo de execução '13': Tipos incompatíveis no Word 2007 RRS feed

  • Pergunta

  • Estou tentando incluir um contador automático de número de documento no corpo do texto no word para ajudar com o meu trabalho, mas já olhei em outros sites e não consegui resolver.

    O mais perto que cheguei foi isso. Criei um modelo, criei um arquivo.txt para anotar a numeração de documentos e até o indicador(bookmarks), mas na hora de abrir o documento aparece esse erro. Quando tento depurar esta ficando amarelo a linha:

    NumDoc = NumDoc + 1

    Pq será? Alguém poderia me ajudar? não manjo muito de programação e nem de VBA. Desde já agradeço.

    Segue o código:

    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", "Portaria")
    ' Testa se já tem Portarias.
        If NumDoc = "0" Then
            NumDoc = 1
        Else
        
            NumDoc = NumDoc + 1
        End If
    ' Atualiza o número de Portarias
        System.PrivateProfileString("C:\Numeração.txt", "Valores", "Portaria") = NumDoc
    ' Atualiza o valor do indicador
        ActiveDocument.Bookmarks("NumDoc").Range.InsertBefore Format(NumDoc, "#")
    ' Salva o arquivo
        ActiveDocument.SaveAs FileName:="Portaria Nº " & Format(NumDoc, "#")
        
    End Sub




    • Editado MTSC sábado, 23 de janeiro de 2016 04:03
    sábado, 23 de janeiro de 2016 03:10

Respostas

  • Este erro ocorre porque

    System.PrivateProfileString

    retorna uma string.

    Você está misturando string com números inteiros.

    Para fazer um teste, insira no seu código, após a linha

    NumDoc = System.PrivateProfileString("C:\Numeração.Txt", "Valores", "Portaria")

    A seguinte seguinte linha

    MsgBox(NumDoc)

    Você verá que aparecerá uma caixa de mensagem mostrando um texto.

    Responda dizendo qual é o texto que aparece na mensagem.

    • Editado AndersonFDiniz2 sábado, 23 de janeiro de 2016 19:08
    • Sugerido como Resposta AndersonFDiniz2 segunda-feira, 25 de janeiro de 2016 16:04
    • Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:33
    • Não Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:34
    • Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:56
    sábado, 23 de janeiro de 2016 18:59

Todas as Respostas

  • Este erro ocorre porque

    System.PrivateProfileString

    retorna uma string.

    Você está misturando string com números inteiros.

    Para fazer um teste, insira no seu código, após a linha

    NumDoc = System.PrivateProfileString("C:\Numeração.Txt", "Valores", "Portaria")

    A seguinte seguinte linha

    MsgBox(NumDoc)

    Você verá que aparecerá uma caixa de mensagem mostrando um texto.

    Responda dizendo qual é o texto que aparece na mensagem.

    • Editado AndersonFDiniz2 sábado, 23 de janeiro de 2016 19:08
    • Sugerido como Resposta AndersonFDiniz2 segunda-feira, 25 de janeiro de 2016 16:04
    • Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:33
    • Não Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:34
    • Marcado como Resposta MTSC sábado, 27 de fevereiro de 2016 05:56
    sábado, 23 de janeiro de 2016 18:59
  • Obrigado AndersonFDiniz2, um colega meu me explicou que costuma dar erro com o zero, então me aconselhou a retirá-lo, então consegui resolver, e como não iria alterar o código apenas declarei NumDoc = 1.

    Agora estou com uma outra dúvida, se puder me ajudar, segue o link:

    https://social.msdn.microsoft.com/Forums/pt-BR/1160d885-287b-4faf-81e6-04afd8f1d2f4/como-adicionar-uma-macro-a-um-boto-no-word-2007?forum=vbapt

    Obrigado.

    sábado, 27 de fevereiro de 2016 05:56