Macro para trasponer Datos de un archivo .log

Tengo un problema con un archivo del cual necesito analizar sus datos.

Es un archivo en una extensión .log llamado save_hitory.log
Necesito analizar sus datos

Los datos vienen así en una sola columna y cada registro en una fila

Sabe 19.07.2017 08:16:10

User: MASTER

Version: 2016i Service Pack 4

No conflicts

La idea es una macro que permita transponer los datos en columna de esta forma

Save 19.07.2017 08:16:10, User: MASTER, Version: 2016i Service Pack 4, No conflicts

Tengo más de 1000 registros para convertir y no se como desarrollar la macro

Si alguien me puede ayudar le agradecería mucho

2 Respuestas

Respuesta
1

Envíame 2 archivos, un archivo .log con datos de prueba. Y un archivo de excel, en el archivo de excel vas a acomodar los datos del archivo .log tal y como los quieres.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Esteban Murillo Urrego

Buenas tardes Dante
De antemano muchas gracias por tu interés

te lo agradezco mucho

Tengo un problema con un archivo del cual necesito analizar sus datos.

Es un archivo en una extensión .log llamado save_hitory.log
Necesito analizar sus datos.

En el archivo de excel adjunto hay dos hojas

1 DatosBrutos en esta hoja se encuentran los datos como me los entrega el archivo save_hitory.log

2 DatosProcesados en esta hoja se encuentra la solución

Básicamente lo que necesito es una macro que coja esos datos les quite los asteriscos y los tabule como se muestra en las celdas F1:I3

Para luego poder analizarlos

Usted me podría ayudar es que tengo que analizar esa información y sin tabularla es muy difícil
Y el problema es que no es solo un archivo. Son 7 archivos y cada uno puede tener aproximadamente 1000 registros.

Si me puede ilustrar un poco en como desarrollarlo le agradecería mucho

Muchas gracias por su atención

Quedo atento

Cordial saludo
https://drive.google.com/drive/folders/0B1qtp8bfy-3PYU1Vd2xjOVdRdVE?usp=sharing 

Te anexo la macro, para abrir el archivo y procesar los registros

Sub Procesar_Log()
'
' Por.Dante Amor
'
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("DatosBrutos")
    Set h2 = l1.Sheets("DatosProcesados")
    ruta = l1.Path & "\"
    arch = "save_history.log"
    Workbooks.OpenText Filename:=ruta & arch, _
        Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(4, 1)), TrailingMinusNumbers:=True
    '
    Set l2 = ActiveWorkbook
    Set h21 = l2.Sheets(1)
    '
    H1. Cells. Clear
    H2. Cells. Clear
    H21. Cells. Copy h1. Range("A1")
    H21. Cells. Copy h2. Range("A1")
    j = 1
    For i = 1 To h1.Range("B" & Rows.Count).End(xlUp).Row Step 5
        h1.Range(h1.Cells(i, "B"), h1.Cells(i + 4, "B")).Copy
        h2.Range("F" & j).PasteSpecial xlValues, Transpose:=True
        j = j + 1
    Next
    l2.Close False
    h2.Cells.EntireColumn.AutoFit
    Application.ScreenUpdating = True
    MsgBox "Procesar Log", vbInformation, "FIN"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Respuesta
1

¿Esto es lo que buscas?, si es así prueba la macro que esta abajo de esta imagen

esta es la macro

Sub transponer()
Set datos = Range("a1").CurrentRegion
With datos
    Areas = .Rows.Count / 4
    Set resultados = .Columns(.Columns.Count + 3).Resize(Areas, 4)
    For i = 1 To Areas
        If i = 1 Then Set fila = .Resize(4, 1)
        If i > 1 Then Set fila = fila.Rows(5).Resize(4, 1)
        resultados.Rows(i).Value = WorksheetFunction.Transpose(fila)
    Next i
    resultado.EntireColumn.AutoFit
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas