Excel Vba

Importar arquivo Xml NF-e para Excel

Neste post vou disponibilizar um arquivo de Excel que importa o Xml NF-e para Excel com o código VBA.

A importação trará apenas as informações definidas no código, que esta desprotegido e pode ser customizado conforme a necessidade de cada um.

Claro que hoje em dia o assunto Xml já é bastante difundido, que os ERP’s já tratam essa importação de forma muito simples e com certeza de forma mais completa. Mas talvez seja útil para algo mais corriqueiro como uma analise simples.

Mas para quem deseja aprender a tratar arquivos Xml com VBA o arquivo pode ser bastante instrutivo e agregar conhecimento, no caso especifico da NF-e é fundamental ter noções tributarias e ler o manual de integração do contribuinte disponível no site do SEFAZ/SP.

Neste código tentei tratar os campos de maior utilização, também tentei tratar a questão das versões possuírem elementos “nós” de xms’s diferentes desde a sua versão inicial até a atual 4.00, mas pode haver diferenças não previstas na estrutura do xml que podem acarretar erros. E peço a ajuda de você caso identifiquem algum erro na execução deixe um comentário que vou tentar avaliar e possivelmente corrigir.

Bom vamos a utilização do arquivo.

O arquivo é muito simples, coloque em uma pasta vários arquivos Xml, abra a planilha e clique no botão “Capturar XML’s”

Selecione a pasta e clique em Ok

O arquivo basicamente vai pegar a pasta selecionar e varrer todos os arquivos dessa pasta, verificando arquivo a arquivo se este tem a extensão Xml, se tem no mínimo um dos elementos obrigatórios e caso essa condições forem atendidas ler o arquivo Xml.

Vejam o resultado, caso tenham qualquer duvida deixem um comentário.

Clique aqui para baixar o arquivo deste post.

 

116 comentários sobre “Importar arquivo Xml NF-e para Excel

    • Obrigado!

      Fiz uma pequena atualização no arquivo para ler também a Base ICMS ST, Valor ICMS ST, CST IPI e Valor do IPI.

      Resposta
      • Bom dia! excelente planilha, agora no vlr do IPI está trazendo % de IPI e vlr no IPI não está trazendo valor

        Resposta
        • Olá, acho q não é que está mostrando errado, só está formatado errado, clique na célula e mude de percentual para número e veja se bate.

          Resposta
      • Fábio, baixei a planilha hoje para teste mas apresentou o mesmo erro que o pessoal relatou com versão office 2016 64bit , tem alguma versão mais nova da planilha ou dica para ajudar na correção ?

        Resposta
      • cara tem como incluir um botão para limpar as imformaçoes

        Resposta
        • Tem sim, codigo abaixo! só mudar para o range que voce usa e inserir o botão de limpar e atribuir essa macro ai

          Sub LimpaNFE()

          ‘Efetua a limpeza de toda a planilha e formatação do Range (B3:B1048576)
          Dim q As Range
          Set q = Range(“B3:B1048576”)
          q.FormatConditions.Delete
          Range(“NFE!A3:N1048576”).ClearContents ‘Limpa Texto.

          End Sub

          Resposta
      • Boa noite!

        Fabio, pode me ajudar em trazer a coluna de unidade de medida ao lado do CFOP por exemplo? Te agradeço .

        Resposta
  • Fabio, estou com um erro na execução da importação: “Erro de compilação: O tipo definido pelo usuário não foi definido”
    Saberia o que pode ser?

    Resposta
    • Rodrigo, bom dia.
      Essa mensagem é um pouco genérica.
      Mas primeiramente o arquivo deve ser um XML NF-e válido com protocolo de autorização e tudo.
      Durante os testes que fiz com alguns xml’s válidos não tive erro.
      Se quiser me enviar o arquivo XML para testar, envie no mitsueda.fabio@gmail. com
      Bom final de semana
      Att
      Fabio Mitsueda

      Resposta
      • estou com o mesmo problema, vou te enviar no email

        Resposta
  • Fabio, gostei da tabela, mas a minha apresentou o mesmo problema do Rodrigo, ele não encontra o xml na pasta. Abraços.

    Resposta
    • Renato, que estranho. Aqui está funcionando perfeitamente. Qual a versão do seu office? As macros estão habilitadas?
      Abraço.

      Resposta
  • Boa tarde! Aqui estou com o Office 2016 e com macro ativado.

    Ao selecionar a pasta com os XML’s o macro começa a rodar e apresenta o erro já informado aqui “Erro de compilação: O tipo definido pelo usuário não foi definido” e mostra o trecho “Dim xmlDoc As DOMDocument”. E funcionou apenas quando retirei a referencia Microsoft XML 6 para Microsoft XML 5.

    Resposta
    • Isso mesmo Evandro, isso acontece porque eu setei essa versão para utilizar o código, essas dlls são 32 bits, eu tenho nativa na minha maquina a versão 3, 5 e 6. Utilizei a 6 porque era a mais atual na minha maquina, mas pode ter pessoas que não tenha ela instalada, ai essa alteração faz pode resolver, talvez o nome do objeto mude talvez não, mas para quem programa o código pode ajudar na ideia e as adaptações ficam mais fácil. Qualquer duvida estou a disposição.

      Abraço

      Resposta
      • O meu deu esse erro “O tipo definido pelo usuário não foi definido” mas não resolveu com a mudança de versão só aparece outro erro. O primeiro é justamento a variavel “Dim xmlDoc As DOMDocument”. A versão do meu Office é 2016.

        Resposta
    • Olá,
      Como vc fez pra mudar a referencia de Microsoft XML 6 para Microsoft XML 5 ? no meu não existe essa dll da versão 5, só encontrei a da versão 3.0 !

      Obs. Tb estou usando o Office 2016 profissional na versão 64 bits.

      Resposta
  • Olá Fabio, vi que nesta parte do código
    Sub LerXml(ByVal strFolderPath As String)

    ‘Declaração de variaveis de objeto para leitura do XML
    Dim xmlDoc As IXMLDOMDocument

    Estava sem a parte “IXML” antes de DOMDocument, após arrumar isso apareceu outro erro:

    “Erro de compilação: Uso inválido da palavra-chave New”

    Nesta parte do código:

    ‘Carregando o objeto que irá representar o documento XML
    Set xmlDoc = New IXMLDOMDocument

    Consegue verificar?

    Resposta
    • Olá Vinicius, primeiramente desculpe a demora no retorno. Estava com uma demanda muito grande de trabalho e não consegui retornar antes.

      Eu fiz o mesmo teste que você e isso realmente acontece porque são objetos diferentes para que o código funcione corretamente deve deixar a variável declarada como DOMDocument, talvez algumas pessoas tenham erros de execução porque eu utilizei office 2010 e fiz uma referencia a DLL Microsoft XML, v6.0.

      Para verificar se essas referencias estão ativas entre no editor do VBA depois no menu Ferramentas>Referências…

      E verifique se a dll Microsoft XML, v6.0 esta selecionada e não tem a palavra (ausente) na frente do nome, como não tenho outra versão do office para testar fica difícil verificar porque não consigo simular o erro.

      Se tiver qualquer duvida pode entrar em contato comigo no email mitsueda.fabio@gmail.com

      Forte abraço

      Resposta
    • Olá,

      Eu mudei um detalhe e pelo esse erro esta solucionado:

      ‘Carregando o objeto que irá representar o documento XML
      Set xmlDoc = CreateObject(“MSXML2.DOMDocument”) <<<< Aqui
      'Set xmlDoc = New IXMLDOMDocument <<<< Não use

      Agora estou tendo problema com a versão da NFe. A minha versão é assim : /nfeProc/NFe/
      /nfeProc/protNFe/

      Já modifiquei mais não funciona : Erro de tempo de de execução 91. A variável do objeto ou Bloco 'With' não foi definida.

      'Versão da NFE
      For i = 0 To xmlDoc.SelectSingleNode("/nfeProc/NFe/protNFe").Attributes.Length – 1
      If LCase(xmlDoc.SelectSingleNode("/nfeProc/NFe/protNFe").Attributes(i).nodeName) = "versao" Then
      strVersao = xmlDoc.SelectSingleNode("/nfeProc/NFe/protNFe").Attributes(i).NodeValue
      Exit For
      End If
      Next

      Alguma ideia do que seja?

      Att,

      Anderson S. Dorneles

      Resposta
  • Uso office 2013 e ainda assim Não importa os xmls com referencia a referencia 6.0 somente com 5.0 também se possível gostaria de pedir se tem como alterar o código para importar as notas agrupando os itens por nota assim teremos as informações completas separadas por notas.

    Resposta
  • Olá, Fábio tudo bem com você?

    Eu encontrei sua planilha ( ótima planilha srrsrs) através do site planilhando.com.br (quando você respondeu um tópico). Eu estava procurando por algo parecido pela internet e acabei indo parar no site.

    Não sei se é possível fazer isso mas, você poderia disponibilizar uma versão dessa planilha que faça a leitura TAMBÉM do campo UNIDADE DE MEDIDA?

    Sua planilha é ótima, porém eu gostaria de saber se é possível você disponibilizar uma versão que faça essa leitura (apenas acrescentar um código para ler o campo UNIDADE DE MEDIDA).

    Ou se talvez você disponibilizar um código para que eu mesmo acrescente essa função (você indica o caminho e eu faço).

    Muito obrigado pela sua atenção.

    Resposta
    • Boa noite,

      Eu não consegui simular esse erro para verificar, vocês pode me enviar um xml? Porque não deveria ter erro por esse motivo.

      mitsueda.fabio@gmail.com

      Abraço

      Resposta
  • Tem como fazer uma verificação se o desti é CPF ou CNPJ antes de importar os dados do destinatário?

    Fiz o seguinte vba porem dá error qdo a nfe é para CPF pois muda o nó CNPJ para CPF

    ‘Leitura da Tab dest (Destinatario)
    For Each xmlNode In xmlDoc.getElementsByTagName(“dest”)
    ‘Razão social do Destinatario
    strDesti = xmlNode.SelectNodes(“xNome”)(0).Text
    ‘CNPJ do Destinatario
    strCNPJDest = “” & xmlNode.SelectNodes(“CNPJ”)(0).Text
    ‘Inscrição Estadual do Destinatario
    strIEDest = “‘” & xmlNode.SelectNodes(“IE”)(0).Text
    Next

    Resposta
  • Bom dia Fábio.

    Sua planinha é perfeita, tenho 2 sugestões:

    1- incluir 2 colunas: VALOR TOTAL DA NOTA (ns1:vNF) e ALÍQUOTA DO IPI (ns1:pIPI);

    2- Não importar informações de xml já mportados, para não duplicar cada vez que importa um novo xml.

    Tem como fazer estes ajustes na planilha ?

    Obrigado.

    Jonas Santos

    Resposta
  • Bom dia,

    Cara tambem achei brilhante a planilha! Eu tenho sugestões tb:
    – Criar duas abas: uma com um totalizador informando o emitente, destinatario, valor total da nf, qtd de produtos, qtde de volumes
    – na outra aba especificas os produtos igual vc já faz

    Ficaria perfeita

    Resposta
  • Bom Dia, Fabio

    Gostei muito da ideia de sua planilha, porem quando fui usar ela da um erro “Erro de compilação: O tipo definido pelo usuário não foi definido”, as XML’s da NF-e são válidas e com protocolo de autorização, utilizo Excel 2016 64 bits. o que poderia ser esse erro.

    Resposta
    • Olá Paulo.

      Veja se não prefipr trocar as referências, nos comentarios acima tem um caso semelhands ao seu que foi resolvido trocabdo as referências.

      Resposta
      • Bom dia. Eu também tentei os ajuste sugerido pelo amigo.

        Alterando para: Set xmlDoc = CreateObject(“MSXML5.DOMDocument”), mas infelizmente não funciona.
        Estou utilizando o Office 2016 com Windows 10 64 btis.
        Já tentei diversas soluções e nenhuma delas funciona.
        Baixei a DLL MSXML5.DLL mas toda vez que tenho que executar, preciso referenciar novamente.
        Será que teria alguma sugestão?

        Agradeço.

        Resposta
  • Ótimo Trabalho. No excel mais novo, no meu caso funcionou, entrar no VB desmarcar a referência Microsoft XML 6 para v4.

    Resposta
  • Oi, não estou conseguindo. Dá o mesmo erro: “Erro de compilação: O tipo definido pelo usuário não foi definido”.

    Resposta
    • Fabio MitsuedaAutor do post

      Ola Caroline, veja nos comentarios desse post algumas pessoas tem problemas com a versão.

      Resposta
  • Olá, bom, muito bom Fábio! Tem previsão pra fazer importando xml de NFC-e?

    Resposta
    • Fabio MitsuedaAutor do post

      Ola Diego, não pensei em fazer algo para NFC-e, mas a estrutura é basicamente a mesma, temos em também o padrão SAT, eu teria que ler o manual de integração para adaptar o layout isso consome um pouco de tempo. Mas a planilha como esta hoje já lê o xml seria mais uma adaptação de campos. Vou tentar dar uma olhada.

      Forte Abraço

      Resposta
      • Oi, Fábio! Sua planilha me ajudou muito. Obrigada por compartilhar conosco essa ferramenta excelente.

        Você já tem algum arquivo que nos ajude a importar NFCe? Estou com essa dificuldade. Poderia nos ajudar?

        Desde já te agradeço bastante!

        Resposta
  • vou em capturar xml fabio, e a pasta esta como se estivesse vazia, sem nenhum arquivo, o que pode está acontecendo?

    Resposta
    • Fabio MitsuedaAutor do post

      Ola Jean, desculpa a demora no retorno, mas estava com uma grande carga de trabalho só agora estou conseguindo ver as msg do site. Bom no seu caso isso é o normal, porque o arquivo não foi feito para ler um arquivo mas sim todos os arquivos daquela pasta sem seleção de arquivo, então basta selecionar a pasta que ele irá ler todos os xmls validos que estiverem nessa pasta.

      Espero que seja isso,

      Forte abraço

      Resposta
  • Boa tarde Fabio,
    Não estou conseguir importar, está dando erro de compilação.

    Resposta
  • Boa tarde Fábio.
    Interessantíssima a planilha. Estou precisando colocar o peso bruto da NF, mas estou encontrando uma certa dificuldade… tem como me passar o “caminho das pedras”?

    Resposta
    • Quebrei a cuca aqui… consegui!!!!

      Resposta
  • Mitsueda, bom dia.

    Primeiramente, agradeço pela disponibilização do arquivo (parabéns pela dedicação).

    O VBA apresentou um erro na importação aos arquivos xml “tempo de execução ’91’ A variável do objeto ou a variável do bloco ‘With’ não foi definida”.

    O seu programa chegou a importar três primeiras nfe’s, depois apresentou o erro supracitado e parou. Tentei identificar o que eu poderia atualizar, pois talvez seja meu arquivo que contenha alguma informação que devo inserir na VBA, porem, não consegui e com gentileza, peço sua ajuda no seguinte sentido:

    Com base no que descrevi, você consegue me informar onde devo agir?

    Na tentativa de eu apresentar algo que talvez lhe dê um norte, descrevo parte inicial e final do arquivo ao qual não migrou para planilha:

    O arquivo inicia-se com:

    35

    Finaliza com:

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

    Abraços
    Rodrigo Alves

    Resposta
    • Olá Mitsueda, bom dia!

      Estou com mesmo problema do colega acima…. poderia nos ajudar!

      Excelente planilha ajudaria muito se conseguisse utiliza-la.

      Desde já agradeço atenção.

      Resposta
    • Comentei a parte de versão NF-E e o IF onde dá erro e no bloco emissão NF-E deixei sem teste de versão e funcionou

      Resposta
      • José, qual seria o código que ajustou e rodou? Obrigado!

        Resposta
  • Bom dia Amigo,

    Que alteração devo fazer para a planilha impostar xml da versão 4.0?

    Estou criando um planilha que calcule automaticamente o diferencial de alíquota e a sua planilha caiu como uma luva.
    Após a conclusão posso compartilhar com você.

    Parabéns pela planilha, belo trabalho.

    Abraço

    Roger Holanda

    Resposta
  • Boa tarde, Fabio
    Cara que sensacional esse vba que compartilhou com a galera.
    Sou um consultor de ERP e essa planilha caiu muito bem, me ajudou a classificar produtos de diversos fornecedores aqui do meu cliente. Simples e eficaz. Não sou programador, mas conheço tudo de ERP e há mto tempo buscava algo assim para excel.
    Parabéns, meooo!
    Ótimo trabalho
    Abraço, Milton Ramos

    Resposta
  • Fabio o meu diz processo finalizado, foi feito a leitura de 5 arquivos, porem os arquivos não aparecem na planilha, os macros foram habilitados!

    Resposta
  • Aqui deu o erro: “Erro de compilação: O tipo de usuário não foi definido” e aparece selecionado uma parte do script “xmlDoc As DOMDocument”, o que posso fazer para resolver?

    Resposta
    • Boa tarde,

      Excelente trabalho!

      Ao importar apresentou o mesmo erro “Erro de compilação: O tipo de usuário não foi definido”

      Poderia me ajudar?

      Resposta
  • Mitsueda, a planilha é muito top!
    Parabéns pelo desenvolvimento!

    Estou com um problema na linha nº 121, abaixo:
    ‘Versão da NFE
    For i = 0 To xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes.Length – 1
    If LCase(xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).nodeName) = “versao” Then
    strVersao = xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).NodeValue
    Exit For
    End If
    Next

    Apresentou o erro:
    Erro em tempo de execução ’91’:
    A variável do objeto ou a variável do bloco ‘With’ não foi definida.

    Já pesquisei em vários lugares sobre isso. Já alterei a parte de referências. Mas não dá certo.
    Teria como me dar uma luz aí?

    Muito obrigado. Abraço.

    Resposta
    • Ola! Conseguiu resolver esse problema? Estou com a mesma questão aqui.

      Resposta
        • Este erro ocorre porque a partir de nov/2019 uma chame mudou e não tem mais a “nfeProc”, basta remover e deixar comente “NFe/infNFe”

          Resposta
          • Olá,
            Cara, graças a sua ajuda, consegui fazer a planilha funcionar, ela esta digamos 99.99% funcionando, só me ajuda com um detalhe se vc puder … vou explicar.

            Nas notas que eu importei usando a planilha, deu um erro nesta linha :

            ‘CNPJ do emitente
            strCNPJEmi = “‘” & xmlNode.SelectNodes(“CNPJ”)(0).Text

            Verificando o valor da varíavel, indentifiquei a nota (o XML) em questão em emperrou e verifiquei que a nota o CNPJ e/ou CPF estava simplesmente em branco, dai deu esse erro. Dai fiz o seguinte:

            ‘CNPJ do emitente
            If strCNPJEmi “” Then
            strCNPJEmi = “‘” & xmlNode.SelectNodes(“CNPJ”)(0).Text
            Else
            strCNPJEmi = “”
            End If

            Com isso, passou, importou todas as notas (XML´s) com sucesso, mas … da nota em questão com CNPJ / CPF em branco para baixo, ele zerou os dados do CNPJ.

            Resumindo, esse trecho em questão precisa verificar se o campo CNPJ esta ou não em branco. Tem como fazer diferente do que eu fiz acima ?

            Desde já agradeço!

            Anderson Dorneles

          • A sua logica está invertida, se a chave for nula o valor do campo deve ser em branco, se não, preenche com o valor da chave.

          • Eu consertei, fiz assim e está funcionando perfeitamente.

            ‘CNPJ do emitente
            If xmlNode.SelectNodes(“CNPJ”)(0).Text
            “” Then
            strCNPJEmi = “‘” & xmlNode.SelectNodes(“CNPJ”)(0).Text
            Else
            strCNPJEmi = “”
            End If

            e TB adicionei um campo da NFe que era nescessário pra mim, o Natureza da operação, agora está tudo OK.

            mesmo assim agradeço.

            Anderson Dorneles

          • Eu consertei, fiz assim e está funcionando perfeitamente.

            ‘CNPJ do emitente
            If xmlNode.SelectNodes(“CNPJ”)(0).Text
            “” Then
            strCNPJEmi = “‘” & xmlNode.SelectNodes(“CNPJ”)(0).Text
            Else
            strCNPJEmi = “”
            End If

            e TB adicionei um campo que era nescessário pra mim, o Natureza da operação.

            mesmo assim agradeço.

            Anderson Dorneles

          • Eu consertei, fiz assim e está funcionando perfeitamente.

            ‘CNPJ do emitente
            If xmlNode.SelectNodes(“CNPJ”)(0).Text
            diferente de “” Then
            strCNPJEmi = “‘” & xmlNode.SelectNodes(“CNPJ”)(0).Text
            Else
            strCNPJEmi = “”
            End If

            e TB adicionei um campo que era nescessário pra mim, o Natureza da operação.

            mesmo assim agradeço.

            Anderson Dorneles

            P.S o formulário não aceita o operador diferente em VBA e tive que escrever e TB não aceita editar, por publiquei 3 vezes a solução.

  • A planilha é incrível, a única coisa que estou tendo dificuldade é no valor total, ele esta puxando o valor total dos produtos, sem o desconto, como faço para o valor total puxar o total da nota fiscal?

    Ex:
    0.00

    0.00

    0.00

    0.00

    0.00

    0.00

    0.00

    0.00

    5.00

    0.00

    0.00

    1.00

    0.00

    0.00

    0.00

    0.00

    0.00

    0.00

    4.00

    Quando importo, puxa o valor de R$ 5,00 e teria que puxar o valor de R$ 4,00.

    Resposta
  • Oi, Fábio! Sua planilha me ajudou muito. Obrigada por compartilhar conosco essa ferramenta excelente.

    Você já tem algum arquivo que nos ajude a importar NFCe? Estou com essa dificuldade. Poderia nos ajudar?

    Desde já te agradeço bastante!

    Resposta
  • Ola Fabio, bom dia
    Teria algum código que eu mesma poderia alterar para incluir UNIDADE MEDIDA e o ITEM da NF?
    Obrigada desde ja.

    Resposta
  • Olá Fábio, primeiramente agradeço muito você ter compartilhado este código-fonte sensacional, eu conheci através de uma colega de trabalho e como programador VB eu consegui adicionar muitos campos e melhorar alguns pontos da sua ferramenta que já era ótima !!! Como por exemplo o tratamento de arquivos não importados, XML canceladas, inutilizadas e cartas de correção, e inserção de diversos campos da NF-e.

    Gostaria de te enviá-la para que você mesmo teste e veja o resultado, criei novos módulos que fazem tratamento de SPED Fiscal, SPED Contribuições, XML de Cupom Fiscal e XML de Notas Fiscais.

    Estou tentando adaptá-la para a biblioteca mais atual, da referência msxml_6.0.dll, mas tive dificuldades no processo e como você que desenvolveu esta parte, queria tirar algumas dúvidas contigo, pois nenhum fórum de programação pôde resolver meu problema.

    Caso seja de seu interesse, entre em contato comigo.

    Resposta
    • Boa dia,

      Poderia disponibilizar a planilha com essas alterações?

      Resposta
    • Marcio, Fabio, boa noite!
      Gostaria de compartilhar informações sobre XML no Excel. Também estou desenvolvendo uma versão mais ampla,com possibilidade de importar qualquer campo de Xml (nfe,nfec,cFe), inclusive com formatação especifica (data, texto, valor).
      Na versão atual apenas informando o nome da Tag desejada no cabeçalho da planilha. ex: /ICMS//CST, emit/Cnpj etc. Agora estou trabalhando para poder alterar os dados na planilha e exportar novamente para Xml, tipo alterar o conteúdo das cProd, xProd, QdtCom.
      Caso tenham interesse favor entrar em contato.

      Resposta
    • Olá Marcio e Fabio, sou desenvolvedor e estou trabalhando para adaptar para versão 6.0, acredito que podemos nos ajudar, envie-o para que possamos trocar XP. Abs Gilson

      Resposta
    • Seria possivel disponibilizar para nos aqui do fórum? criar um link no drive para baixarmos.

      Resposta
    • olá, márcio tudo bem?

      Estou aprendendo agora VBA e tenho interesse na sua planilha com novos campos, para aprendizado e aplicação nas minhas atividades.

      desde já agradeço.

      Resposta
  • Estou com o arquivo LerXml.xlsm (http://prntscr.com/ov8l0o) , porém não consegue localizar o XML a importar, tentei várias ajustes como informado acima e nada, estou usando o OFFICE 2013, WINDOWS 10. Esse é o erro http://prntscr.com/ov8lob. Caso eu não entre na pasta, deixando somente no diretório essa é a mensagem : http://prntscr.com/ov8m2n. O meu interesse é apenas para pegar a quantidade do produto, seu ean, nome do produto, valor unitário e valor total. Se alguém puder me ajudar agradeço meu e-mail contato@tsmix.com.br

    Resposta
  • Olá,
    A mim da-me erro Run-time 91.
    Object varialble or with block variable not set
    na linha
    For i = 0 To xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes.Length – 1
    Como posso resolver

    Resposta
    • remove nfeProc e deixa só “NFe/infNFe” para importar notas emitidas a partir de nov/2019

      Resposta
  • A mim da-me erro Run-time 91.
    Object varialble or with block variable not set
    na linha
    For i = 0 To xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes.Length – 1
    Como posso resolver

    Resposta
  • Grande Fabio, obrigado pela força. A exemplo dos colegas acima estou com o mesmo erro 91. Pode nos ajudar?

    ‘Versão da NFE
    For i = 0 To xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes.Length – 1
    If LCase(xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).nodeName) = “versao” Then
    strVersao = xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).NodeValue
    Exit For
    End If
    Next

    Apresentou o erro:
    Erro em tempo de execução ’91’:
    A variável do objeto ou a variável do bloco ‘With’ não foi definida.

    Obrigado!!!

    Resposta
  • Sabe informar se qual chave identifica se o destinatário é pessoa fisica ou juridica?

    Outra dúvida, o xml suprime os campos não utilizando, fazendo com que chaves existam em um xml e em outro não, como por exemplo “enderDest/email” se o campo não form preenchido essa chave é suprimida no xml. Como faço para testar se a chave existe?

    Resposta
  • Pessoal, alguém tem a versão atualizada dessa planilha?

    Resposta
  • alguem tem essa planilha tualizada?

    Resposta
  • Olá,
    Consegui fazer a planilha funcionar, quem tiver interesse, vou deixar nesse link para download!

    https://drive.google.com/open?id=1NecK_isyvVsHeUudP8N0eyOheI1fKNsw

    Queria pedir a ajuda pra resolver dois problemas que pretendo fazer na planilha na forma de melhorias:

    1 – Pretendo deixar essa funcionalidade como sendo um complemento do Excel, ou seja, assim que abrir o Excel, vai ter um icone na propria janela do Excel (importar XML´s). Encontrei algumas problemas pra fazer isso, dentre eles não consegui criar uma aba nova usando o código ja existente, esse código :

    Sub CriaAbaNova()
    Dim novaAba As String
    ‘———- cria aba nova ———————————-‘
    Sheets.Add After:=Sheets(Sheets.Count)
    novaAba = “XML”
    ActiveSheet.Name = novaAba
    Sheets(novaAba).Select
    ‘————————————————————‘

    Não funciona, não cria a aba. nova. A ideia era de criar a aba (XML) e criar a formatação do cabeçaho (emitente, CNPJ, Regime tributário e etc) da planilha via vba, para que o complemento do Excel não precise de uma planilha pronta, ja formatada e salva.

    2 – A planilha funciona muito bem, mas … para uma quantidade maior de XML´s (testei com 74 e trava pouco e com 2500 trava muito) a planilha trava, o procesamento fica alto, acredito que resolveria com isso :

    ‘———————————-‘
    Application.ScreenUpdating = false
    Application.DisplayAlerts = false
    ‘———————————-‘
    ‘ código
    ‘———————————-‘
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    ‘———————————-‘

    … mas eu simplesmente coloquei isso em todos os lugares possiveis do código da planilha e ele não funciona. Se alguem encontrar um lugar pra colocar o “Application.ScreenUpdating” no código, eu acredito que o problema de travamento para.

    No mais, estamos a disposição.

    Att,

    Anderson Dorneles

    Resposta
    • Funcionou Perfeitamente

      Muito Obrigado.

      Parabens pelo atualizacao e tambem para quem criou inicialmente

      Resposta
    • Baixei mas deu erro 91 ” A variavel do objeto ou a variavel do blovo “with” não foi definida.

      Resposta
      • Se for importar arquivos XML versão “4.00” usa este código que comente a parte que não precisa ver a versão já que será todas com versão do XML “4.00”

        ‘Versão da NFE
        ‘ For i = 0 To xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes.Length – 1
        ‘ If LCase(xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).nodeName) = “versao” Then
        ‘ strVersao = xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).NodeValue

        ‘ Exit For
        ‘ End If
        ‘ Next

        ‘Data de emissão
        ‘ Select Case strVersao
        ‘ Case “4.00”

        ‘Deixe somente esta linha abaixo
        strDEmi = VBA.Formate(VBA.Left(xmlNode.SelectNodes(“dhEmi”)(0).Text, 10), “dd/mm/yyyy”)

        ‘ Case “3.10”
        ‘ strDEmi = VBA.Format(VBA.Left(xmlNode.SelectNodes(“dhEmi”)(0).Text, 10), “dd/mm/yyyy”)
        ‘ Case Else
        ‘ strDEmi = VBA.Right(xmlNode.SelectNodes(“dEmi”)(0).Text, 2) & “/” & _
        ‘ VBA.Mid(xmlNode.SelectNodes(“dEmi”)(0).Text, 6, 2) & “/” & _
        ‘ VBA.Left(xmlNode.SelectNodes(“dEmi”)(0).Text, 4)
        ‘ End Select

        Resposta
        • Se for importar arquivos XML versão “4.00” usa este código que comente a parte que não precisa ver a versão já que será todas com versão do XML “4.00” . E caso não seja todos xml 4.00? Obrigado!

          Resposta
  • Bom dia.

    Estou tentando adicionar a informação de ICMS ST e alíquota do ICMS ST, porém sem sucesso.

    Por acaso alguém tem essa planilha com esses dados?

    Resposta
  • Bom dia,

    Não sou da área entendo bem pouco de VBA mas preciso muito de uma planilha destas só que para XML de NFse, nota de serviços eletrônica, se alguém puder me ajudar.

    Um abraço

    Resposta
    • Boa noite Henrique. O XML da NFse é bem direfente, nesse caso é mais fácil recriar a planilha.

      Resposta
  • Henrique estamos juntos! rs Não sou da área, trabalho com a parte fiscal e a planilha seria excelente para otimizar o processo de correlação de itens, mas ao importar está erro de compilação e não consegui resolver lendo os comentários anteriores…

    Resposta
  • É possível adicionar um espaço para a razão social da transportadora?

    Resposta
  • a minha na captura esta dando erro 91 de novo alguem sabe por que?

    Resposta
  • Boa tarde!

    Eu tenho uma planilha parecida, porém tenho um problema, ela duplica os XMLs, o que posso fazer para não duplicar os XMLs?

    Obrigado,

    Resposta
  • Olá… Baixei a planilha e dá um ERRO 91

    Resposta
  • Boa tarde Fábio;

    e possível puxar a parte da observação do XML com essa planilha?

    eu uso essa sua planilha está de parabéns nota 1000.

    se puxasse a parte da observação da nota seria muito bom mesmo.

    Resposta
  • Boa Noite, em alguns arquivos XMLs contém caracteres com acentuação.

    Quando isso ocorre, a função LOAD não carrega.

    Alguém poderia me ajudar ?

    Resposta
  • Olá Fabio! Ao tentar realizar a importação o VBA deu o seguinte erro “O tipo definido pelo usuário não foi definido ” e o VBA marca a sub rotina Sub LerXml(ByVal strFolderPath As String).
    Sabe o que pode ser?
    Eu coloquei os arquivos xml em uma pasta e executei a captura e deu esse errom

    Resposta
  • Prezad@s,

    Acho que é possivel fazer essa automação usando o Power Query.

    Resposta
  • Pessoal, alguem sabe como acrescentar informações do xml na planilha ? Precisava acrescentar a fatura com vencimento das duplicatas

    Resposta
    • Boa tarde amigo, posso tentar te ajudar! Eu tenho essa tabela do Fabio mas toda modificado por mim e com coisa que removi e acrescentei.

      Meu email: joseph.automatus@gmail.com

      Resposta
      • bom dia, Joseph

        tenho interesso na sua planilha atualizada, desde já agradeço

        Resposta
        • Me manda um email que te dou o link dela por lá!

          Resposta
  • Boa tarde! gostaria de incluir na planilha as informacoes dos dados adicionais,”

    ICMS ISENTO CONFORME ARTIGO 459 ANEXO IX DO RICMS/02, NOTA DE RETORNO REFERENTE AO ROMANEIO 1347 PLACA OLQ-5923″ pode me ajudar a atualizar a planilha? Grato

    Resposta
  • Ola,
    Fabio, preciso acrescentar a informação de data de vencimento, consegue me ajudar a por essa informação ?

    Resposta
  • Segue a solução para erros com a versão 6.0 (MSXML2.DOMDocument60):
    A variável do objeto ou a variável do bloco ‘With’ não foi definida.
    (“Object variable or With block variable not set”)

    Dim xmlDoc As MSXML2.DOMDocument60
    Dim xmlNode As MSXML2.IXMLDOMNode

    Set xmlDoc = New MSXML2.DOMDocument60

    ‘Adicione o código abaixo:
    xmlDoc.SetProperty “SelectionNamespaces”, “xmlns:nfe=’http://www.portalfiscal.inf.br/nfe'”

    ‘Colocar o prefixo “nfe:” em todos os nós do caminho (SelectNodes / SelectSingleNode)
    Set xmlNode = xmlDoc.SelectSingleNode(“nfe:nfeProc/nfe:NFe/nfe:infNFe/nfe:ide/nfe:nNF”)

    Debug.Print “Número da NF: ” & xmlNode.Text

    Resposta
  • Olá excelente dia, não consigo usar a aplicação, por favor poderiam me ajudar, segue o erro abaixo.

    Erro de copilação

    Resposta
  • Muito boa, já utilizava a versão anterior, essa só está aparecendo um erro em tempo de compilação, “O tipo definido pelo usuário não foi definido”. Dim xmlDoc As DOMDocument (Sub LerXml(ByVal strFolderPath As String))

    Resposta
  • Idem :

    ‘Versão da NFE
    For i = 0 To xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes.Length – 1
    If LCase(xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).nodeName) = “versao” Then
    strVersao = xmlDoc.SelectSingleNode(“/nfeProc/NFe/infNFe”).Attributes(i).NodeValue
    Exit For
    End If
    Next

    Apresentou o erro:
    Erro em tempo de execução ’91’:
    A variável do objeto ou a variável do bloco ‘With’ não foi definida.

    Resposta
  • If slots are your thing, slotaronline is worth checking out. They have a HUGE selection. Seriously, something for everyone. I was pretty impressed with the selection available on slotaronline.

    Resposta
  • Yo! Found a bonus code site, codigobonusbetobet, seems legit. I’m trying to score myself some extra dosh and this place seems to be delivering. Worth checking if you’re hunting for bonuscodes. Grab yours now at codigobonusbetobet!

    Resposta
  • Looking for some good odds and reliable service? bet9jashop is where I’ve landed. Seems like a solid spot to place your bets. Hope I pick the right ones, haha! Check out bet9jashop

    Resposta

Deixe uma resposta