Foto de Michel G.
Michel há 2 anos
Enviada pelo
Site

Duvida visual basic excel

Possuo um projeto de leitura do xml da nota fiscal passando a extrair algumas tags de que necessito p/ o excel, mas quando o programa passa por uma tag que defini e ele nao a encontra no xml entao ocorre um erro! Preciso fazer um IF para verificar se as tags do XML existem e nao sei como fazer isso! Alguem pode me ajudar?

Excel
4 respostas
Professor Assis J.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Assis
Claro! Para evitar que o programa retorne um erro quando uma tag específica não é encontrada, você pode usar um bloco `If` juntamente com um método para verificar se a tag existe antes de tentar extraí-la. Em Visual Basic for Applications (VBA), que é a linguagem de programação usada no Excel, você pode usar um método como `SelectNodes` ou `SelectSingleNode` para procurar a tag e depois verificar se o resultado é `Nothing`, o que significaria que a tag não foi encontrada. Aqui está um exemplo de como você pode fazer isso usando VBA: ```vba Dim xmlDoc As Object Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0") 'Carregar o XML xmlDoc.async = False xmlDoc.Load ("caminho_do_seu_arquivo.xml") 'Definir o nó que você está procurando Dim node As Object Set node = xmlDoc.SelectSingleNode("//tag_que_voce_esta_procurando") 'Se o nó existe, então extraia o valor If Not node Is Nothing Then 'Colocar o valor extraído em uma célula no Excel, por exemplo Sheets("SuaPlanilha").Range("A1").Value = node.Text Else 'Se a tag não foi encontrada, você pode fazer algo aqui, como exibir uma mensagem MsgBox "Tag não encontrada" End If ``` Lembrando que você deve ajustar os nomes de tags, o caminho do arquivo XML e os locais onde deseja inserir os dados conforme a sua necessidade.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta

Envie sua pergunta

Professor Emmanuel B.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Emmanuel

Boa noite Michel, me passa um print do seu vb dessa parte que verifica o xml para ter ideia e tentar lhe ajudar, obrigado.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Marcello A.
Respondeu há 2 anos
Contatar Marcello

Ola Michel,

O ideal era ver o seu codigo para entender a melhor solucao para o seu caso, uma possibildade eh voce incrementar um On Error Statement que desviaria o seu codigo para uma etapa que voce definir e dessa formula, elimina a mensagem de erro.

veja nesse link abaixo o conteudo em ingles

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/on-error-statement

espero que tenha lhe ajudado

Um Abraco.

 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Vilson B.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Vilson Rafael

Miche, no Excel, você pode usar fórmulas para fazer essa verificação. Vou explicar como fazer isso usando a função PROCV, que é útil para buscar valores em uma tabela ou matriz.

Supondo que você tenha os dados XML em uma coluna no Excel, você pode usar a fórmula PROCV para verificar se a tag existe e, em seguida, extrair o valor dela.

Aqui está um exemplo de como fazer isso:

Suponha que você tenha o seguinte XML em uma célula do Excel (vou usar a célula A1 como exemplo):

<nota>

<numero>12345</numero>

<descricao>Compra de produtos</descricao>

</nota>

Agora, suponha que você deseje extrair o valor da tag <numero> para outra célula (por exemplo, célula B1) e quer lidar com o caso em que a tag não existe.

Em B1, você pode usar a seguinte fórmula:

=SEERROS(PROCV("<numero>",A1:A1,1,FALSO)),"Tag não encontrada",PROCV("<numero>",A1:A1,1,FALSO))

Agora você pode seguir esses passos:

  1. PROCV("<numero>",A1:A1,1,FALSO): Esta parte da fórmula tenta procurar a tag <numero> na célula A1. O PROCV retorna um valor se encontrar a tag e um erro (#N/D) caso não encontre. A referência A1:A1 é usada para limitar a pesquisa à célula A1.
  2. ÉERROS(...): Esta parte envolve a primeira parte da fórmula com a função ÉERROS, que retorna VERDADEIRO se a função PROCV encontrar um erro (#N/D) e FALSO se encontrar um valor.
  3. SE(ÉERROS(...),"Tag não encontrada",...): Aqui, estamos usando a função SE para verificar se ocorreu um erro ao tentar encontrar a tag <numero>. Se ocorreu um erro, a fórmula exibe a mensagem "Tag não encontrada". Caso contrário, a fórmula retornará o valor encontrado pela função PROCV.

Isso permitirá que você lide com o caso em que a tag não existe no XML, exibindo uma mensagem personalizada em vez de um erro.

Você pode aplicar a mesma lógica para extrair outras tags do XML e manipular os dados conforme necessário no Excel. Certifique-se de ajustar a referência da célula (por exemplo, A1:A1) à coluna onde seus dados XML estão armazenados.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta

Aprenda do seu jeito, no seu ritmo

Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App
Escaneie o QR Code para baixar