¿Como generar un txt delimitado por espacios, cada palabra tiene caracteres diferentes desde una base de datos de excel?

Tengo ciertos valores que se suben mediante una macro de captura de datos:

Nombre Apellido Lugar de nacimiento Fecha de nacimiento Escolaridad

Diana      Muñoz      Michoacan                      19940606                       Bachillerato

Ernesto  Gutierrez   Chiapas                           19940624                      Universidad

(La fecha esta en formato DD-MM-AAAA, pero con la formula me la cambia para poderla subir a un interface por eso queda AAAAMMDD), genere el layout con formulas de excel y si me genera un txt, pero se me hace una manera muy prehistorica, vi varias macros que me pueden ayudar... Pero ciertamente voy iniciando y no les entiendo porque quiero especificar que Diana y Ernesto (de maximo pueden tener 17 caracteres) en el txt me pega Diana pero los otros 12 caracteres quedan en espacio.

2 respuestas

Respuesta
1

H   o l a:

Envíame tu archivo con datos de ejemplo. También dime cómo o qué pasos realizas para pasar esos datos a txt; y por último, envíame un archivo txt con los mismos datos de ejemplo, pero de la forma como lo quieres.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Diana Fernandez

S a l u d o s . D a n t e   A m o r

Te anexo la macro

Sub GuardarTxt()
'Por.Dante Amor
    Set h = Sheets("LAYOUT request")
    FileNum = FreeFile()
    ruta = ThisWorkbook.Path & "\"
    Open ruta & "archivo.txt" For Output As #FileNum
    '
    coll = Array("A", "B", "C", "F", "E", "R", "I", "J", "L", "N", "O", "P", "M")
    coln = Array(10, 5, 10, 10, 20, 14, 8, 10, 8, 4, 25, 30, 4)
    For i = 4 To h.Range("A" & Rows.Count).End(xlUp).Row
        For j = LBound(coll) To UBound(coll)
            dato = h.Cells(i, coll(j))
            'Select Case j
            '    Case 5
            '        dato = Format(dato, "00000000000000")
            'End Select
            For k = 1 To coln(j)
                car = Mid(dato, k, 1)
                If car = "" Then car = " "
                Print #FileNum, car;
            Next
        Next
        Print #FileNum,
    Next
    Close #FileNum
    '
    MsgBox "Archivo txt creado"
End Sub

.

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

.

Avísame cualquier duda

.

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas