Foros del Web » Soporte técnico » Ofimática »

[SOLUCIONADO] Generar TXT excel

Estas en el tema de Generar TXT excel en el foro de Ofimática en Foros del Web. Tengo esta macro de excel que genera un txt dependiendo de las columnas y filas seleccionadas, el problema es que sigue sacando pipe | hasta ...
  #1 (permalink)  
Antiguo 20/05/2011, 10:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 11 meses
Puntos: 0
Generar TXT excel

Tengo esta macro de excel que genera un txt dependiendo de las columnas y filas seleccionadas, el problema es que sigue sacando pipe | hasta el ultimo seleccionado el caso es que se debe detener antes de la ultima columna. ejemplo

a|b|c| asi lo hace

a|b|c lo optimo

¿Alguna idea?

Sub GeneraTxt()
Dim MiRango As Range, Largo As Integer, FilaActual As Long
On Error Resume Next
Set MiRango = Application.InputBox("Seleccione rango a exportar al TXT", 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
MsgBox "Archivo txt generado en ruta de la plantilla, verifique que los datos sean los correctos", vbOKOnly, "Txt generado"
End Sub
  #2 (permalink)  
Antiguo 20/05/2011, 12:17
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Respuesta: Generar TXT excel

Pues fácil, cuenta una celda demás, corroborando que sea la última, es decir habrá dos celdas en blanco, si se cumple esta condición, que "borre" el último | pipe, es decir le haces un substring a eso antes de grabarlo, no se si me explico. Osea en lugar de imprimir la celda uno por uno, guardalo en una cadena, cuando termines de checar las celdas solo le quitas al string el último | y ya lo "printeas" :P
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar

Última edición por Monimo; 20/05/2011 a las 12:24
  #3 (permalink)  
Antiguo 23/05/2011, 09:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Generar TXT excel

Pues creo es mas facil de esta forma pero gracias........
Lo comparto

Next Celda
FilaActual = MiRango.Cells(1).Row
FilaActual1 = MiRango.Cells(1).Column
total = MiRango.Count
contador = 1
For Each Celda In MiRango
If contador = total Then
Print #1, CStr(Celda); "";
Else
Print #1, CStr(Celda); "|";
End If
contador = contador + 1
Next Celda

Etiquetas: excel, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:02.