Exportar de excel a txt

Hola amigo quiero Exportar de excel a txt pero que solo se exporte lo filtrado de una columna en espesicifica

1 respuesta

Respuesta
1
Te dejo el codigo que guarda en un archivo txt los registros visibles de tu hoja filtrada (tienes que haber filtrado los datos y lanzar la macro desde la primera celda que quieras que se copie). Me cuentas si anda. Saludos
*****************************************************
Sub SalvarTXTDatosVisibles()
''Creado por FSerrano ([email protected]) en 110627 para (xxxxxx) en TodoExpertos.com
''Guarda en formtato TXT las celdas visibles, supone que un filtro esta activado
'Captura la ubicación y el nombre del archivo actual, remueve la extensión del nombre del archivo actual
ruta = ActiveWorkbook.Path
nombre = Application.WorksheetFunction.Substitute(Application.WorksheetFunction _
. Substitute(ActiveWorkbook. Name, ".", "cutcortecut", Len(ActiveWorkbook.Name) _
- Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", ""))), _
Mid(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction.Substitute _
(ActiveWorkbook.Name, ".", ""))), Application. WorksheetFunction.Find("cutcortecut", _
Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name _
, ".", "")))), Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, _
".", "cutcortecut", Len(ActiveWorkbook. Name) - Len(Application.WorksheetFunction _
. Substitute(ActiveWorkbook.Name, ".", ""))))), "")
'Selecciona los datos contenidos en el rango visible
Range(ActiveCell, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
'Añade un nuevo libro para pegar alli la información copiada
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
'Salva el libro actual en formato txt en la misma ubicación que el libro actual y con el mismo nombre
ChDir (ruta)
ActiveWorkbook.SaveAs Filename:=nombre & ".txt", _
FileFormat:=xlUnicodeText, CreateBackup:=False
End Sub
Gracias amigo nefese por tu respuesta el código que me pasaste no me es tan útil para lo que quiero, ya que solo quiero que se exporte lo filtrado en la columna A, discúlpeme si no me explique.
Sin mas que decir en lo particular y en espera de tan valiosa ayuda.
Pues si solo quieres la columna A debes usar el codigo que te dejo con la linea que te resalto
************************************************************************
Sub SalvarTXTDatosVisibles()
''Creado por FSerrano ([email protected]) en 110627 para (xxxxxx) en TodoExpertos.com
''Guarda en formtato TXT las celdas visibles, supone que un filtro esta activado
'Captura la ubicación y el nombre del archivo actual, remueve la extensión del nombre del archivo actual
ruta = ActiveWorkbook.Path
nombre = Application.WorksheetFunction.Substitute(Application.WorksheetFunction _
. Substitute(ActiveWorkbook. Name, ".", "cutcortecut", Len(ActiveWorkbook.Name) _
- Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", ""))), _
Mid(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction.Substitute _
(ActiveWorkbook.Name, ".", ""))), Application. WorksheetFunction.Find("cutcortecut", _
Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name _
, ".", "")))), Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, _
".", "cutcortecut", Len(ActiveWorkbook. Name) - Len(Application.WorksheetFunction _
. Substitute(ActiveWorkbook.Name, ".", ""))))), "")
'Selecciona los datos contenidos en el rango visible
Range("A1:A"& ActiveCell.SpecialCells(xlLastCell).Row).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
'Añade un nuevo libro para pegar alli la información copiada
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
'Salva el libro actual en formato txt en la misma ubicación que el libro actual y con el mismo nombre
ChDir (ruta)
ActiveWorkbook.SaveAs Filename:=nombre & ".txt", _
FileFormat:=xlUnicodeText, CreateBackup:=False
End Sub
***********************************************************************
Si quieres que te copie la columna sobre la cual 'estas parado' reemplaza la linea resaltada por la siguiente
Range(Cells(1, ActiveCell. Column), Cells(ActiveCell. SpecialCells(xlLastCell). Row, ActiveCell. Column)).Select.
Gracias mi amigo, es muy util asi pero hay otra cosa solo quiero que me realice el archivo txt y no me haga otra copia del archivo de excel, por otro lado si se podria hacer que me exporte lo filtrado de la columna A pero que me excluya lo escrito en la celda A2.
Sin mas que decir en lo particular y en espera de tan valiosa respuesta.
saludos
La copia que hago del archivo es para despues salvarlo como txt; no tiene mayor utilidad; te dejo el codigo que copia la columna A, EXCLUYENDO la celda A2. Saludos
***********************************************************
Sub SalvarTXTDatosVisibles()
''Creado por FSerrano ([email protected]) en 110627 para (xxxxxx) en TodoExpertos.com
''Guarda en formtato TXT las celdas visibles, supone que un filtro esta activado
'Captura la ubicación y el nombre del archivo actual, remueve la extensión del nombre del archivo actual
ruta = ActiveWorkbook.Path
nombre = Application.WorksheetFunction.Substitute(Application.WorksheetFunction _
. Substitute(ActiveWorkbook. Name, ".", "cutcortecut", Len(ActiveWorkbook.Name) _
- Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", ""))), _
Mid(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction.Substitute _
(ActiveWorkbook.Name, ".", ""))), Application. WorksheetFunction.Find("cutcortecut", _
Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name _
, ".", "")))), Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, _
".", "cutcortecut", Len(ActiveWorkbook. Name) - Len(Application.WorksheetFunction _
. Substitute(ActiveWorkbook.Name, ".", ""))))), "")
'Selecciona los datos contenidos en el rango visible
Range("A1,A3:A" & ActiveCell.SpecialCells(xlLastCell).Row).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
'Añade un nuevo libro para pegar alli la información copiada
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
'Salva el libro actual en formato txt en la misma ubicación que el libro actual y con el mismo nombre
ChDir (ruta)
ActiveWorkbook.SaveAs Filename:=nombre & ".txt", _
FileFormat:=xlUnicodeText, CreateBackup:=False
ActiveWorkbook.Close savechanges:=False
End Sub
estimado amigo gracias por tus respuestas, pero sino es mucho pedir podemos hacer que no se haga esa copia de excel, yose que no es de utilidad pero es solo que se exporte el txt nada mas.
Disculpeme tanto fastidio.
Sin mas que decir y en espera de tan valiosa respuesta.
Saludos
Como te digo la copia en excel no tiene mayor incidencia, DESAPARECE CON EL FIN DEL PROCESO, aqui te dejo el codigo modificado, por favor finaliza la pregunta. Saludos
**********************************************************************
Sub SalvarTXTDatosVisibles()
''Creado por FSerrano ([email protected]) en 110627 para (xxxxxx) en TodoExpertos.com
''Guarda en formtato TXT las celdas visibles, supone que un filtro esta activado
'Captura la ubicación y el nombre del archivo actual, remueve la extensión del nombre del archivo actual
Application.ScreenUpdating = False
ruta = ActiveWorkbook.Path
nombre = Application.WorksheetFunction.Substitute(Application.WorksheetFunction _
. Substitute(ActiveWorkbook. Name, ".", "cutcortecut", Len(ActiveWorkbook.Name) _
- Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", ""))), _
Mid(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction.Substitute _
(ActiveWorkbook.Name, ".", ""))), Application. WorksheetFunction.Find("cutcortecut", _
Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, ".", "cutcortecut", _
Len(ActiveWorkbook. Name) - Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name _
, ".", "")))), Len(Application. WorksheetFunction. Substitute(ActiveWorkbook.Name, _
".", "cutcortecut", Len(ActiveWorkbook. Name) - Len(Application.WorksheetFunction _
. Substitute(ActiveWorkbook.Name, ".", ""))))), "")
'Selecciona los datos contenidos en el rango visible
Range("A1,A3:A" & ActiveCell.SpecialCells(xlLastCell).Row).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ChDir (ruta)
ActiveWorkbook.SaveAs Filename:=nombre & ".txt", _
FileFormat:=xlUnicodeText, CreateBackup:=False
ActiveWorkbook.Close savechanges:=False
Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas