Alteração de macro ...
 
Notifications
Clear all

Alteração de macro gravada

3 Posts
2 Usuários
0 Reactions
750 Visualizações
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Boa tarde!
Por favor, preciso de ajuda para resolver um pequeno problema.
Eu tenho uma macro que precisa ser alterada.
Essa macro importa arquivos.xml, porém ela só importa um arquivo contido nessa pasta: “C:UsersJNDesktopXML111111111111111111112222222222222222.xml”
Se na pasta tem 100 arquivos.xml, ela só importa 1.
Eu gostaria de saber como faço para alterar essa macro possibilitando ao usuário escolher a pasta (independente do lugar) e também quantos arquivos ele vai importar (se na pasta tem 500 arquivos.xml, ele vai conseguir importar os 500 arquivos).
Desde já agradeço pela atenção de todos.

Sub IMPORTAR()
' IMPORTAR Macro
'
    Range("Tabela1[CÓDIGO]").Select
    ActiveWorkbook.XmlMaps("TESTE_Mapa").Import URL:= _
        "C:UsersJNDesktopXML111111111111111111112222222222222222.xml"
End Sub
 
Postado : 20/12/2017 11:30 am
(@klarc28)
Posts: 971
Prominent Member
 
'Procedimento para selecionar arquivos
Sub lsSelecionarArquivo()
    Dim fDlg As FileDialog
    Dim lArquivo As String

    'Chama o objeto passando os parâmetros
    Set fDlg = Application.FileDialog(FileDialogType:=msoFileDialogOpen)
    With fDlg
        'Alterar esta propriedade para True permitirá a seleção de vários arquivos
        .AllowMultiSelect = False

        'Determina a forma de visualização dos aruqivos
        .InitialView = msoFileDialogViewDetails

        'Filtro de arquivos, pode ser colocado mais do que um filtro separando com ; por exemplo: "*.xls;*.xlsm"
        .Filters.Add "Texto", "*.txt", 1

        'Determina qual o drive inicial
        .InitialFileName = "C:"
    End With

    'Retorna o arquivo selecionado
    If fDlg.Show = -1 Then
        lArquivo = fDlg.SelectedItems(1)
        MsgBox "O arquivo selecionado está em: " & lArquivo
        Cells(5, 5).Value = lArquivo
    Else
        MsgBox "Não foi selecionado nenhum arquivo"
    End If
End Sub
 
Postado : 20/12/2017 9:54 pm
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Olá, bom dia!
Obrigado pela atenção. Na verdade, eu acho que não expliquei direito o que preciso.
Vamos lá srsrs.
Passos:
1º Eu estou criando uma planilha para importar arquivos .xml;
2º Eu mapeei os campos que preciso através da opção mapas xml;
3º Eu cliquei na opção importar dados xml (botão localizado na guia desenvolvedor), quando eu clico nesse botão eu posso escolher a pasta onde estão os arquivos e quantos arquivos eu quero importar;
4º Eu cliquei em gravar macro quando realizei esse procedimento (para criar um botão personalizado na minha planilha ao invés de usar o botão da faixa de opções);

Sub IMPORTAR()
'
' IMPORTAR Macro
'

'
    ActiveWorkbook.XmlMaps("xml").Import URL:= _
        "C:UsersFiscalDesktopARQUIVOS XMLxml (1).xml"
    ActiveWorkbook.XmlMaps("xml").Import URL:= _
        "C:UsersFiscalDesktopARQUIVOS XMLxml (2).xml"
    ActiveWorkbook.XmlMaps("xml").Import URL:= _
        "C:UsersFiscalDesktopARQUIVOS XMLxml (3).xml"
    ActiveWorkbook.XmlMaps("xml").Import URL:= _
        "C:UsersFiscalDesktopARQUIVOS XMLxml (4).xml"
End Sub

Essa macro, não permite o usuário escolher onde estão os arquivos e quantos arquivos o usuário quer importar para a planilha.
Essa macro, importa apenas alguns dados e não todos.
Eu gostaria de saber como faço para alterar essa macro, permitindo assim ao usuário escolher o local onde estão os arquivos e quantos arquivos ele quer importar para a planilha.
Em anexo, seguem todos os arquivos que tenho.
Obrigado pela atenção.

 
Postado : 21/12/2017 6:26 am