Notifications
Clear all

Alterar macro importar xml

5 Posts
2 Usuários
0 Reactions
1,287 Visualizações
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Bom dia!

Por favor, alguém poderia me ajudar? Eu preciso editar uma macro gravada (macro gravada com a opção gravar macros).

Sub Importar()
'
' Importar Macro
' Macro para importar xml (xml mapeado ).
'
' Atalho do teclado: Ctrl+i
'
    ActiveWorkbook.XmlMaps("nfeProc_Mapa").Import URL:= _
        "C:UsersFiscalDesktopARQUIVOS XML42160358514928002037550010009560191822988051-procNfe.xml"
End Sub

Essa macro importa o arquivo xml, porém ela importa apenas o xml → 42160358514928002037550010009560191822988051-procNfe.xml

Eu preciso alterar essa configuração, eu gostaria que ao invés de realizar a importação para o arquivo especificado, que ela abrisse uma janela para escolher qual o arquivo será importado.

Amigos, tem como fazer isso?

Em anexo, segue o modelo da janela que preciso.

Desde já agradeço pela atenção e dedicação de todos.

Atenciosamente,
Marco.

 
Postado : 24/03/2017 6:46 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

Veja se isso te ajuda

Sub importar()
Dim i
i = Application.GetOpenFilename("Escolha o arquivo xml (*.xml), *.xml")
If i <> False Then
ActiveWorkbook.XmlImport URL:=i _
, ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1") ' se voce quiser pode mudar o destino da primeira célula
Else
Exit Sub ' coloquei para sair da sub caso não haja nenhum arquivo escolhido, você pode colocar uma mensagem de erro também
End If
End Sub

Se isso te ajudou, clique no "joinha" ao lado de citar

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 24/03/2017 7:50 am
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Olá, não deu certo :( :(

A macro abre a janela que preciso, porém após importar o xml eu não consigo exportar o arquivo editado.

Eu consigo colocar um "Abrir Janela" na mesma macro que postei?

Sub Importar()
'
' Importar Macro
' Importar arquivo XML.
'
' Atalho do teclado: Ctrl+i
'
    ActiveWorkbook.XmlMaps("nfeProc_Mapa").Import URL:= _
        "C:UsersFiscalDesktopxml.XML"
End Sub

Para que você possa compreender melhor, eu criei mapas xml (DesenvolvedorCódigo-fonteMapas XML) só importa na planilha os campos que eu preciso, porque depois eu consigo exportar o xml editado.

Em anexo, seguem os arquivos para que você possa analisar melhor.

Atenciosamente,
Marco

 
Postado : 24/03/2017 9:02 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

Veja se isso te ajuda

Sub Importar()
Dim i
i = Application.GetOpenFilename("Escolha o arquivo xml (*.xml), *.xml")
If i <> False Then
ActiveWorkbook.XmlMaps("nfeProc_Mapa").Import URL:=i
Else
Exit Sub
End If
End Sub

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 24/03/2017 11:41 am
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Sim, muito obrigado!

Essa função atende ao que preciso. muito obrigado!

Por favor, você poderia apenas acrescentar mais uma macro "se não for pedir muito :roll: :roll: ". É possível criar uma macro para exportar o xml alterado (igual a macro para importar, onde é possível escolher o local e um nome para o arquivo editado).

Eu tenho uma macro que faz quase isso sabe, porém ela não permite alterar o nome e nem o diretório.

Segue a macro que tenho:

Sub Exportar_XML_Editado()
'
' Exportar_XML_Editado Macro
'
    ActiveWorkbook.XmlMaps("nfeProc_Mapa").Export URL:= _
        "C:UsersFiscalDesktopxml editado.xml"
End Sub

Essa macro exporta o xml "porém apenas com o nome → xml editado.xml, e no diretório c:usersfiscaldesktop"

Tem como personalizar essa macro? Igual a macro para importar o xml (permitindo ao usuário escolher o diretório e o nome para poder salvar o xml editado)?

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

Atenciosamente,
Marco

 
Postado : 24/03/2017 12:34 pm