Importação de Data ...
 
Notifications
Clear all

Importação de Data formato dd/mm/aaaa de TXT para Excel

4 Posts
3 Usuários
0 Reactions
1,005 Visualizações
(@jairo)
Posts: 6
Active Member
Topic starter
 

Pessoal,
Bom dia,

Estou tentando fazer a importação do arquivo txt para excel usando o código (vba) abaixo e tenho um problema na importação das DATAS.
Quando faço a importação, os dias entre 01 a 12 viram meses e com os outros ficam em formato texto.
Preciso importar arquivos em TXT, cuja as datas estarão em posições variáveis, e sempre em formato dd/mm/aaaa.
Estou enviando os arquivos em XLS e TXT para apreciação.
Por exemplo:
no arquivo texto está 01/07/2016 (data correta é primeiro de julho de 2016), depois da importação, no Excel fica 07/01/2016 (sete de janeiro de 2016):

Public Sub ImportarTexto()
    Dim Arquivo As String

    With Application.FileDialog(msoFileDialogFilePicker)
        .Show
        Arquivo = .SelectedItems(1)
    End With

  Dim rg As Range
    Set rg = Range("A1").End(xlDown).Offset(1, 0)

    Open Arquivo For Input As #1

    Dim S As String, N As Integer, C As Integer, X As Variant
    Do Until EOF(1)
        Line Input #1, S
        C = 0
        X = Split(S, ",")
        For N = 0 To UBound(X)
            If X(N) <> "" Then
                rg.Offset(0, C) = X(N)
                C = C + 1
            End If
        Next N
        Set rg = rg.Offset(1, 0)
    Loop
    Close #1

End Sub

Agradeço antecipadamente as sugestões,
abs.,

 
Postado : 25/07/2016 6:15 am
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Diria p/ vc q a melhor e muito mais fácil maneira de importar é por meio do Query table / Nova Consulta.
Da uma olhada na planilha e depois testa alterando o arquivo txt.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 25/07/2016 7:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Alem da proposta do colega Junqueira, se desejar continuar utilizando a maneira atual; experimente alterar sua rotina conforme abaixo:

Public Sub ImportarTexto()
Dim Arquivo As String
Dim rg As Range
Dim S As String, N As Integer, C As Integer, X As Variant

With Application.FileDialog(msoFileDialogFilePicker)
    .Show
    Arquivo = .SelectedItems(1)
End With

Set rg = Cells(Cells(Cells.Rows.Count, "A").End(xlUp).Row, 1).Offset(1, 0)
       
Open Arquivo For Input As #1
    
Do Until EOF(1)
    Line Input #1, S
    C = 0
    X = Split(S, ",")
    
    For N = 0 To UBound(X)
        If X(N) <> "" Then
            If N = 0 Then
                rg.Offset(0, C) = CDate(X(N))
            Else
                rg.Offset(0, C) = X(N)
            End If
            C = C + 1
        End If
    Next N
    Set rg = rg.Offset(1, 0)
Loop
    Close #1
End Sub

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

 
Postado : 25/07/2016 8:33 am
(@jairo)
Posts: 6
Active Member
Topic starter
 

Excelente ! As duas sugestões resolveram a questão. Obrigado Reinaldo e DJunqueira.
Jairo

 
Postado : 25/07/2016 8:58 am