Hola amigo:
Modifique tu código para que en vez de usar espacio agregara como separador
un ;, ya que asi lo necesitaba.
pero ahora tengo un problema que es una tonteria y ya la cabeza no me da.
a ver si ustedes ven. el problema es que cada linea de datos termina con el ; y en mi caso el ultimo elemento deberia terminar sin esta.
este es el codigo que modifique:
-----------------------------
Sub GeneraTxt()
Dim MiRango As Range, Largo As Integer, FilaActual As Long
On Error Resume Next
Set MiRango = Application.InputBox("Seleccione rango a exportar", Type:=8)
On Error GoTo 0
If MiRango Is Nothing Then Exit Sub
Open "\TEXTO.txt" For Output As #1
For Each celda In MiRango
If Largo <= Len(celda) Then Largo = 1 + Len(celda)
Next celda
FilaActual = MiRango.Cells(1).Row
For Each celda In MiRango
If FilaActual < celda.Row Then
FilaActual = celda.Row: Print #1, ""
End If
Print #1, CStr(celda); ";";
Next celda
Close #1
Set MiRango = Nothing
End Sub
------------------------------------------------------------------
Espero haberme explicado. y gracias por su tiempo.
----------------------------------------------- anterior -------------------
Cita:
Iniciado por mrocf
Una variante dentro del mismo esquema sería:
Código:
Sub GeneraTxt()
Dim MiRango As Range, Largo As Integer, FilaActual As Long
On Error Resume Next
Set MiRango = Application.InputBox("Seleccione rango a exportar", Type:=8)
On Error GoTo 0
If MiRango Is Nothing Then Exit Sub
Open "C:\TEXTO.txt" For Output As #1
For Each Celda In MiRango
If Largo <= Len(Celda) Then Largo = 1 + Len(Celda)
Next Celda
FilaActual = MiRango.Cells(1).Row
For Each Celda In MiRango
If FilaActual < Celda.Row Then
FilaActual = Celda.Row: Print #1, ""
End If
Print #1, CStr(Celda); Space(Largo - Len(Celda));
Next Celda
Close #1
Set MiRango = Nothing
End Sub
Saludos