Macro archivos dat

Experto, como se puede mantener el formato texto cuando se habré el archivo.

Sub archivos_dat()
'Por.DAM
arch = Dir("*.dat")
Set h1 = Sheets.Add
Do While arch <> ""
uf = h1.Range("A1").SpecialCells(xlLastCell).Row + 1
Workbooks.Open arch
ActiveSheet.UsedRange.Copy h1.Cells(uf, "A")
ActiveWindow.Close
arch = Dir()
Loop
End Sub

1 respuesta

Respuesta
1

Cuando abres el archivo el formato texto se mantiene, a menos que pases el texto a columnas o le apliques cierto formato, en ese caso excel tiene una memoria de lo que hiciste con el archivo anterior y cuando abres un nuevo archivo similar, le aplica cierto formato, pero basta con salir de excel y abrir los archivos, siempre se abrirán como texto si no les haces nada.
La macro que te envié, copia un rango de celdas y lo pega en otro libro, abre otro archivo .dat, y no le hace ningún cambio al archivo .dat

Dam al ejecutar la macro solo la primera linea del dat se mantiene con los datos correctos pero las otras lineas cambian, no se si estaré haciendo algo mal o no. 1,15202E+46 asi se muestran las demás filas

Prueba con esta

Sub archivos_dat()
'Por.DAM
arch = Dir("*.dat")
Set h1 = Sheets.Add
Do While arch <> ""
    uf = h1.Range("A1").SpecialCells(xlLastCell).Row + 1
    Workbooks.OpenText _
        Filename:=arch, _
        Origin:=xlMSDOS, _
        StartRow:=1, _
        DataType:=xlFixedWidth, _
        FieldInfo:=Array(0, 2), _
        TrailingMinusNumbers:=True
    ActiveSheet.UsedRange.Copy h1.Cells(uf, "A")
    ActiveWindow.Close
    arch = Dir()
Loop
End Sub

Saludos.DAM

Estimado funciona a la perfección, una ultima consulta el sheets.add se puede eliminar y dejar todo en la hoja 1

Cambia

Set h1 = Sheets.Add

Por esta

Set h1 = Sheets("Hoja1")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas