Notifications
Clear all

OtherDelimiter - alterar configuração inicial

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

Pessoal, eu tenho um código vba que permite importar txt e separar as informações, porém eu gostaria de saber se é possível inserir mais delimitadores?

informações presentes no arquivo txt teste:

<cadastro><produto>mesa</produto><cor>branco</cor><unidade>PC</unidade><ano>2017</ano></cadastro>

o meu código separa as informações em cada coluna, delimitador utilizado para separar as informações "<"

quando eu aplico o código os dados ficam assim na planilha (informaçõaes separadas por coluna) (Conforme exemplo anexo)

o código removeu o sinal "<" inicial de cada campo, porém eu gostaria de saber como posso fazer para remover todos os sinais.

meu código é esse:

.TextFileOtherDelimiter = "<"

tem como deixar ele assim:

.TextFileOtherDelimiter = "<","/",">"

quando eu iniciar o código as informações devem aparecer assim na planilha (Conforme exemplo anexo)

as informações foram separadas por colunas.

muito obrigado.

 
Postado : 08/02/2018 6:07 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se a rotina abaixo ajuda, faça os ajustes :

Fonte: https://stackoverflow.com/questions/319 ... delimiters
Parsing txt file into Excel with multiple delimiters

Sub ParseData()
    Dim FileSpec As String, TextLine As String
    Dim RowNumber As Long
    folder = "C:TestFoldertextfiles"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folder)
    RowNumber = 1
    Close #1

    For Each file In folder.Files
        FileSpec = folder & "" & file.Name
        Open FileSpec For Input As #1
        Do While Not EOF(1)
            Line Input #1, TextLine
            TextLine = Replace(TextLine, "+", "-")
            If InStr(TextLine, "-") = 0 Then
                Cells(RowNumber, 1) = TextLine
            Else
                ary = Split(TextLine, "-")
                ccol = 1
                For Each a In ary
                    Cells(RowNumber, ccol) = a
                    ccol = ccol + 1
                Next a
            End If
            RowNumber = RowNumber + 1
        Loop
        Close #1
    Next file
End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/02/2018 10:41 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Voce tambem pode optar pelo "SPLIT", segue dicas de funcções :

How to Split a String with Multiple Delimiters in VBA
https://www.experts-exchange.com/articl ... n-VBA.html

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/02/2018 11:19 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Muito bom os links Mauro.
Como adicional http://www.cpearson.com/excel/splitondelimiters.aspx

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/02/2018 1:09 pm
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Obrigado a todos pela atenção.

Eu observei todos os links mencionados, mas como eu ainda estou aprendendo sobre vba então ficou meio confuso os códigos dos links.

Então eu criei um outro procedimento que deleta os sinais, porém o problema agora é apenas separar as informações por colunas.

os códigos importam e removem os sinais, porém as informações não são separadas.

Em anexo, seguem os arquivos.

muito obrigado pela atenção de todos.

 
Postado : 08/02/2018 2:51 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não consigo descompactar o arquivo, da msg de corrompido.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/02/2018 6:06 pm
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Estou enviando no formato zip.

 
Postado : 09/02/2018 4:51 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

JNEXCEL, seu txt modelo não possui alguns campos conforme seu post inicial (tipo Unidade e Ano),
esses arquivos variam em conteúdo em relação a "campos"?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/02/2018 6:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente e comente

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/02/2018 6:50 am
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Respondendo a sua pergunta anterior.

Isso, exatamente.

as informações são variadas, ou seja, podem estar entre <cadastro><produto>mesa</produto></cadastro> como também em <cadastro><produto>mesa</produto><unidade>UN</unidade></cadastro>

Eu tenho o código para remover todos os sinais: </> independente de quantas vezes ele aparece na planilha.

porém eu agora não estou conseguindo separar as informações por colunas, antes era separar e remover os sinais, agora é apenas separa por colunas.

Com relação ao seu novo arquivo.

Eu vou baixar e fazer um teste, muito obrigado

 
Postado : 09/02/2018 8:05 am
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Reinaldo, ficou perfeito. Muito obrigado pela ajuda

Agradeço também ao Mauro Coutinho, pela atenção e colaboração.

Muito obrigado a todos.

 
Postado : 09/02/2018 8:13 am