Macro para guardar archivo de excel en txt

Que tal con ayuda de ustedes cree una macro de la siguiente forma:
Private Sub CommandButton1_Click()
nbre = Format(Now, "dd-mm-yy hh mm ss")
ruta = ThisWorkbook.Path
ActiveWorkbook.SaveCopyAs ruta & "\" & nbre & ".xls"
End Sub
Pero al guardarlo es muy pesado (250kb aproximadamente) y al día tengo que hacer como 100 esto me ocupa mucho espacio (25MB aprox.) ya que tengo varias hojas con datos para rellenar el formulario en el mismo libro lo que me gustaría hacer es poder guardar solo la hoja con los datos que contiene o poder guardar con la extensión *.txt para reducir el tamaño del archivo que se genera. Otra cosa intente cambiarlo en la siguiente linea
ActiveWorkbook.SaveCopyAs ruta & "\" & nbre & ".txt"
Si lo guarda pero no se entiende ya que salen puros caracteres. Soy novato en esto me podrían ayudar.

1 respuesta

Respuesta
1
Utilizá la grabadora para 'guardar como ' y el formato más apropiado.
Con esta instrucción que adjunto elegí Texto (delimimitado por tabulaciones).
Estando en la hoja elegida para guardar:
ActiveWorkbook.SaveAs Filename:= ruta & "\" & nbre & ".txt", FileFormat:= _
        xlText, CreateBackup:=False
Sdos. No dejes la consulta sin finalizar
Hola gracias por la ayuda esta genial si reduce mucho el tamaño nada más que tengo un problema me cambia el nombre de la hoja cada que lo guardo abra forma de evitar esto ya que como esta vinculada con otras hojas con el cambio ya no me reconoce las fórmulas
Así quedo
Private Sub CommandButton1_Click()
nbre = Format(Now, "dd-mm-yy hh mm ss")
ruta = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", FileFormat:= _
        xlText, CreateBackup:=False
End Sub
Muchísimas gracias y saludos
SaveAs te genera la copia y se te queda en el nuevo libro.
SaveCopyAs te genera la copia pero se sigue quedando en el libro original.
Sdos
Gracias por responder nuevamente perdón pero no se como puedo ocupar el savecopyas lo intente de esta forma
Private Sub CommandButton1_Click()
nbre = Format(Now, "dd-mm-yy hh mm ss")
ruta = ThisWorkbook.Path
ActiveWorkbook.CopyAs Filename:=ruta & "\" & nbre & ".txt", FileFormat:= _
        xlText, CreateBackup:=False
End Sub
Y me marca error como lo puedo arreglar saludos y muchas gracias
Fíjate cómo escribiste la línea de copia (te falta el Sabe):
ActiveWorkbook.SaveCopyAs Filename:=ruta & "\" & nbre & ".txt", FileFormat:= _
        xlText, CreateBackup:=False
Sdos
Elsa
Nuevamente gracias pero me sigue marcando error perdón pero me podrías orientar a saber que es lo que esta mal
Private Sub CommandButton1_Click()
nbre = Format(Now, "dd-mm-yy hh mm ss")
ruta = ThisWorkbook.Path
ActiveWorkbook.SaveCopyAs Filename:=ruta & "\" & nbre & ".txt", FileFormat:= _
        xlText, CreateBackup:=False
End Sub
Gracias y saludos
Quizás falta seleccionar la hoja o habrá un error de sintaxis que no veo.
Esta está probada. Cópiala tal cual y ajustá a tu hoja
Sub Macro18()
' Macro grabada el 03/06/2009 por Elsamatilde
nbre = Format(Now, "dd-mm-yy hh mm ss")
ruta = ThisWorkbook.Path
    Sheets("Hoja2").Select
    ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", _
        FileFormat:=xlText, CreateBackup:=False
End Sub
Sdos
Elsa
Hola gracias por la respuesta y por tu valioso tiempo que me dedicas pero a la mejor no me he explicado correctamente esta macro:
Sub Macro18()
' Macro grabada el 03/06/2009 por Elsamatilde
nbre = Format(Now, "dd-mm-yy hh mm ss")
ruta = ThisWorkbook.Path
    Sheets("Hoja2").Select
    ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", _
        FileFormat:=xlText, CreateBackup:=False
End Sub
Funciona correctamente, el problema es que cada que lo graba se queda en pantalla el archivo que se guarda a mi me gustaría que se cerrara este archivo y se quedara mi archivo original del comienzo.
Lo que requiero es que si estoy en el libro1.xls que se quede ahí cuando ejecuto la macro pero así como esta el código se cambia al archivo que se genera 03 06 09 20 41 23.txt y se queda abierto hay forma de que se guarde y se cierre por completo el archivo que se genera.
Lo que yo entendí en tus respuestas anteriores era ocupar SaveCopyAs pero si cambiamos esta linea:
ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", _
        FileFormat:=xlText, CreateBackup:=False
por esta otra:
ActiveWorkbook.SaveCopyAs Filename:=ruta & "\" & nbre & ".txt", _
        FileFormat:=xlText, CreateBackup:=False
No funciona.no reconoce todo lo que esta después del (".txt",)
Espero haberme explicado y agradezco tu valioso tiempo que le dedicas a mi pregunta. Saludos
Si, disculpa, el error fue mio. Me maree con tanto Sabe...
Pruébalo así, lo que hice fue volver a abrir el libro.
Sub Macro18()
' Macro grabada el 03/06/2009 por Elsamatilde
libro1 = ActiveWorkbook.Name
nbre = Format(Now, "dd-mm-yy hh mm ss")
ruta = ThisWorkbook.Path
    Sheets("Hoja2").Select
    ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", _
        FileFormat:=xlText, CreateBackup:=False
Workbooks.Open ThisWorkbook.Path & "\" & libro1
Workbooks(nbre & ".txt").Close true
End Sub
Espero que ahora sí, de lo contrario continuamos mañana.
Sdos
Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas