Ir ao conteúdo
  • Cadastre-se

VBA - Importar XML em lote


Posts recomendados

Fala gente tudo bom ? Trabalho com sistema ERP e estou com um cliente que faz a separação de XML manual, ele esta me pedindo se não tem como fazermos isso de uma forma mais pratica. Vou explicar da forma que foi passado a mim.

Ele quer clicar em um botão "importar XML" selecionar a pasta e abrir os xml em uma lista, essa lista com um filtro para organizar por cidade, e os produtos contendo nos xml em uma outra listagem. Para ele imprimir essas listagens e ficar mais fácil a separação dos produtos.

 

Algumas imagens para melhor entendimento:XML.png.5d25c735360c6a3306aa0b5a7f9fbeca.png

 

Imprimir uma listagem desse estilo, importante somar o valor do peso! Informações de nome de Fornecedor e produtos borrados pois não tenho permissão para divulgar esse conteúdo !

Programa.png.ad097f3d4d989305088d9e46253316ff.png

 

 

 

Link para o comentário
Compartilhar em outros sites

13 horas atrás, Basole disse:

Uma opção é importar através do Excel e com ajuda do vba, para separar as colunas e organizar da forma que deseja

Tentei fazer, mas quando eu tento importar para o Excel por exemplo 40 XML ele abre 40 Excel com 1 xml em cada, e não todos em uma unica planilha. 

Link para o comentário
Compartilhar em outros sites

22 horas atrás, Basole disse:

Uma opção é importar através do Excel e com ajuda do vba, para separar as colunas e organizar da forma que deseja

Basole, estou usando esse código para importar, mas ele so deixa e selecionar 1 XML por vez, o que posso alterar para ajustar isso ?

Private Sub ToggleButton1_Click()
    
    Dim sArquivo
    Dim sEspecificação As String
    Dim sTítulo As String
    
    Planilha1.Select 'seleciona a Planilha1
    Range("A1048576").Select 'seleciona a ultima linha da Planilha1
    Selection.End(xlUp).Select 'sobe até o primeira célula com conteúdo
    If ActiveCell = "ID" Then
    contador = 0
    Else
    contador = ActiveCell.Value 'captura na variável o valor da linha atual
    End If
    contador = contador + 1
    txt_for_id = contador
    txt_for_data = Format(Now, "DD/MM/YYYY")
    
    
    sEspecificação = "Arquivos XML (*.xml*),*.xml*"
    sTítulo = "Selecione um arquivo XML:"
    
    'Evita a mensagem de erro ao importar os itens do XML
    Application.DisplayAlerts = False
    sArquivo = CStr(Application.GetOpenFilename(sEspecificação, , sTítulo, , False))
    
    If sArquivo <> CStr(False) Then
        
        Planilha1.Select
        Cells.Select
        Selection.Delete Shift:=xlUp
        Range("A2").Select
        
        MsgBox "O seguinte arquivo XML será importado: " & vbCrLf & sArquivo & vbCrLf '& vbCrLf & "Confirme as próximas mensagem..."
        
        On Error Resume Next
        ActiveWorkbook.XmlImport Url:=sArquivo, ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")
       
       
        Else
        'Nenhum arquivo foi selecionado
    End If

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...