H o l a:
No sé en cuáles columnas está la información que comentas.
Para establecer un ancho de columna se tiene que hacer con otra macro.
Tienes que modificar en la nueva macro las columnas que tienen un ancho diferente a 8.
Yo puse en la macro en estas líneas, que la columna "C" es de 40 y que la columna "F" es de 10.
lets = Array("C", "F")
Anch = Array(40, 10)Entonces, en la macro tienes que corregir esas columnas y poner las letras y las longitudes. Solamente tienes que poner las que su longitud es diferente de 8.
Para el formato de la fecha, yo estoy suponiendo que la columna con la fecha es la "F", entonces en la siguiente línea de la macro tienes que cambiar la letra "F" por la letra de la columna que tiene la fecha:
If col.Column = Columns("F").Column Then
La nueva macro:
Sub GuardarTxt()
'Por.Dante Amor
FileNum = FreeFile()
ruta = ThisWorkbook.Path & "\"
Open ruta & "archivo2.txt" For Output As #FileNum
'
lets = Array("C", "F")
anch = Array(40, 10)
cols = Array("B", "C", "F", "L:AA", "AC:AI", "AL:AM", "AO:AQ")
For i = 8 To 134
For j = LBound(cols) To UBound(cols)
Set rango = Columns(cols(j))
For Each col In rango.Columns
dato = Cells(i, col.Column)
If col.Column = Columns("F").Column Then
dato = Format(Cells(i, col.Column), "dd-mm-yyyy")
End If
micol = col.Column
existe = False
For m = LBound(lets) To UBound(lets)
numcol = Columns(lets(m)).Column
If numcol = micol Then
ancho = anch(m)
existe = True
Exit For
End If
Next
If existe = False Then
ancho = 8
End If
For k = 1 To ancho
car = Mid(dato, k, 1)
If car = "" Then car = " "
Print #FileNum, car;
Next
Next
Next
Print #FileNum,
Next
Close #FileNum
'
MsgBox "Conversión de excel a txt terminada", vbInformation, "CONVERTIR A TXT"
End Sub
‘
S a l u d o s . D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s