Importação de xml e...
 
Notifications
Clear all

Importação de xml em lote

3 Posts
2 Usuários
2 Reactions
3,147 Visualizações
(@denisonreis)
Posts: 10
Eminent Member
Topic starter
 

Boa tarde!

 

Estou usando o código abaixo para fazer importação de xml. O código seleciona vários xml , porém só importa os dados de um único xml. 

Alguém poderia me ajudar? Gostaria importar varios xml's. 

Segue código:

 

Sub IMPORTAR_XML()

  Dim intChoice As Integer
  Dim strPath As String

  With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = True
    .Filters.Clear
    .Filters.Add "XML SOMENTE (*.xml)", "*.xml"
  End With

  intChoice = Application.FileDialog(msoFileDialogOpen).Show

  If intChoice <> 0 Then
    strPath = Application.FileDialog( _
    msoFileDialogOpen).SelectedItems(1)

  End If

  ActiveWorkbook.XmlMaps("nfeProc_Mapa").Import URL:=strPath

End Sub

Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.

 
Postado : 11/09/2020 5:47 pm
(@srobles)
Posts: 231
Estimable Member
 

@denisonreis

 

Estou apanhando também, mas com a parte da leitura dos dados na planilha.

 

Todavia, no seu código somente um XML é aberto por falta de uma laço de verificação. Experimente o que segue :

Sub IMPORTAR_XML()

Dim caixaXML As Office.FileDialog
Dim strPath As String
Dim totalArquivos As Long

totalArquivos = 0

Set caixaXML = Application.FileDialog(msoFileDialogFilePicker)

With caixaXML
.AllowMultiSelect = True
.Filters.Clear
.Filters.Add "XML SOMENTE", "*.xml"
.InitialFileName = ThisWorkbook.Path
.InitialView = msoFileDialogViewList
.Title = "Informe o local do(s) arquivo(s) : "
.Show
End With

totalArquivos = caixaXML.SelectedItems.Count

If totalArquivos >= 1 Then

For vArquivo = 1 To totalArquivos
strPath = caixaXML.SelectedItems(vArquivo)
ActiveWorkbook.XmlMaps("nfeProc_Mapa").Import Url:=strPath
Next

End If

End Sub

Agora é quebrar a cabeça para estruturar a leitura dos dados. 🙂

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 13/09/2020 8:01 pm
denisonreis reacted
(@denisonreis)
Posts: 10
Eminent Member
Topic starter
 

@srobles

Deu certo aqui.

Muito obrigado amigo!!!

 
Postado : 14/09/2020 9:23 am
srobles reacted