Macro para Importar de un archivo TXT a Excel

Tengo datos en un archivo txt, el registro de datos de un determinado producto se compone de 5 lineas (código, nombre, detalle, precio, fecha) separador por una linea en blanco, NECESITO una macro para importar todo el contenido del txt, pero que me ordene en columnas y que considere el espacio en blanco para pegar a la siguiente linea. En forma manual hice pegando todo el contenido del txt a la planilla y de a una hacia el PEGADOR ESPECIAL y TRANSPONER, (selecciono todo el grupo de 5 lineas que me ocupa una sola columna) con este método si selecciono todo me lo pega en una sola linea los datos separador por columna lo que necesito es que los 5 campos separe en columna y luego salte a otra linea, espero que me entiendan GRACIAS.
Ejemplo de mis datos en txt
=============================
M2233
Manguera de jardín
Color amarillo
25,00
10-11-2010
R2231
Ropero de 4 puertas
Color blanco
800,00
11-11-2010
Necesito que el marcro lo pegue de esta formar el encabezado del titulo lo pongo yo
  A                 B                                                                 C       D
1  CODIGO PRODUCTO                                               PRECIO  FECHA
2  M2233   MANGUERA DE JARDIN COLOR AMARILLO  25,00 10-11-2010
3  R2231   ROPERO DE 4 PUERTAS                            800,00 11-11-2010

1 Respuesta

Respuesta
1
Creo que está duplicada la pregunta. Te pongo la misma respuesta por si acaso no te llega la otra.
Saludos
Prueba con este código. Creo que es algo así lo que quieres:
Option Explicit
Const nombreFichero = "C:\ficheroImportar.txt"
Sub importar5lineas()
    Dim nf As Integer
    Dim linea As String
    Dim nLin As Integer
    Dim nCol As Integer
    nf = FreeFile
    Open nombreFichero For Input As nf
    Cells(1, 1) = "Código"
    Cells(1, 2) = "Producto"
    Cells(1, 3) = "Precio"
    Columns("C:C").NumberFormat = "#,##0.00"
    Cells(1, 4) = "Fecha"
    Columns("D:D").NumberFormat = "dd-mm-yyyy"
    nLin = 2: nCol = 1
    Do While Not EOF(nf)
        Line Input #nf, linea
        If nCol = 3 Then
            Cells(nLin, 2) = Trim$(Cells(nLin, 2) & " " & linea)
          Else
            If nCol < 3 Then
                Cells(nLin, nCol) = Trim$(linea)
              Else
                Cells(nLin, nCol - 1) = Trim$(linea)
            End If
        End If
        nCol = nCol + 1
        If nCol = 6 Then nLin = nLin + 1: nCol = 1
    Loop
    Close nf
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas