Foto de Michel G.
Michel há 1 ano
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?

4 respostas
Professor Assis J.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
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 uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Professor Emmanuel B.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
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á 1 ano
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á 1 ano
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
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor