Saltar al contenido

Guardar como .Xlsm


SilverCrow

Recommended Posts

Hola, soy nuevo aca. 

Quiero hacer una consulta para ver si me ayudan con esto que no me deja abrir el archivo cuando lo guardo de esta manera en formato .Xlsm
 

Guarda el archivo  y todo bien, solo que al intentar abrir el archivo nuevo me da error.

Sub CopiarLibroActivo()

With ActiveWorkbook
   .SaveCopyAs "C:\Users\Arroyo\Desktop\Domesa\ " & Format(Now, "dd-mm-yyyy") & " Control Cinta, Sobres y Bolsas" & ".xlsx"
End With    'TRATO DE GUARDARLO COMO ".XLSX" DE ESTA MANERA
            'PERO AL INTENTAR ABRIR EL ARCHIVO CREADO ME DA ERROR

End Sub

GuardarLibroActivo.bas

Enlace a comentario
Compartir con otras webs

Hola SilverCrown,

Si el archivo donde lo ejecutas es XLSM, tendria que cambiar la extension de la copia a XLSM.

No lo sé exacto pero si un archivo XLSM lo guardas como XLSX, pues puede que te de problemas.

Y ademas por si acaso quitaria un espacio que hay en

.SaveCopyAs "C:\Users\Arroyo\Desktop\Domesa\_" & Format(Now, "dd-mm-yyyy") & " Control Cinta, Sobres y Bolsas" & ".xlsx"

Ese no es el problema pero yo lo quitaria por si acaso....

SAludos

Ikanni

 

Enlace a comentario
Compartir con otras webs

Hace 1 hora, Macro Antonio dijo:

 

Te falta el parámetro:

 

FileFormat:=fileformat

 

Buenos días Don MacroAntonio,

Segun la ayuda,

Método Workbook.SaveAs

el parametro FileFormat dice...

Formato de archivo que se debe usar al guardar el archivo. Para obtener una lista de las opciones válidas, consulte la enumeración XlFileFormat. Para un archivo existente, el formato predeterminado es el último formato de archivo especificado. Para un archivo nuevo, el formato predeterminado es el formato de la versión de Excel que se usa.

Esto, según entiendo yo, es para el formato y/o Versiones, osea para guardarlo como Csv, htlm, excel5, excel8, etc... NO para guardarlo como xlsx ejecutado en un xlsm. He hecho  la prueba y como que no deja. Osea lo gurda pero no se puede abrir.

Método SaveCopyAs

No dispone de parametros

He probado de las dos maneras y no se guarda el archivo bien. Con el Metodo SaveAs, al abrir el archivo guardado se me cuelgua hasta el Excel ¡¡¡¡;)

Así que sino no hago algo mal (QUe tambien puede ser:lol:), No se puede guardar un XLSM como XLSX

Saludo

Ikanni

Enlace a comentario
Compartir con otras webs

Invitado Cacho R

Un saludo para toda la distinguida concurrencia. Un par de comentarios:

 

- SaveCopyAs es un método “sencillito” nomás: sólo te permite guardar el libro -eventualmente con otro nombre- pero NO sirve para cambiar el formato del mismo. Por lo que si lo aplicas a un “xlsm” te lo guardará así aunque le pongas cualquier otra extensión al nombre del libro.

 

- Lo apropiado para lo que deseas hacer es utilizar el método SaveAs. Ello conllevará un "costo adicional" en términos de líneas de programa como por ejemplo:

Sub CopiarLibroActivo()
Dim oldName$, newName$

With ActiveWorkbook

'Nombre original del libro con macros:
  oldName = .FullName
  .Save

'Nuevo nombre del libro que guardaré sin macros:
  newName = .Path & "\Otro nombre.xlsx"
  If Dir(newName) <> "" Then Kill newName

'Guardo el libro activo pero sin macros:
  Application.DisplayAlerts = False
    .SaveAs newName, FileFormat:=51
  Application.DisplayAlerts = True
 
'Vuelvo a abrir el libro original:
  Workbooks.Open oldName

'Cierro el libro sin macros:
  .Close False
End With

End Sub

 

 

 

Enlace a comentario
Compartir con otras webs

Gracias por sus respuestas,  Yo lo que necesito simplemente seria que se guarde sin macros, osea no abra entonces una manera de borrar las macros de la copia del libro que guarde, claro sin que se borren las del libro original.

o comentar las macros que creo seria mejor que borrarlas. 

Gracias y disculpen molestias.

Enlace a comentario
Compartir con otras webs

Invitado Cacho R
Hace 12 minutos , SilverCrow dijo:

... Yo lo que necesito simplemente seria que se guarde sin macros ...

Déjame adivinar: ¡Ni probaste el código que he publicado!

Enlace a comentario
Compartir con otras webs

Hace 9 horas, Cacho R dijo:

Un saludo para toda la distinguida concurrencia. Un par de comentarios:

 

- SaveCopyAs es un método “sencillito” nomás: sólo te permite guardar el libro -eventualmente con otro nombre- pero NO sirve para cambiar el formato del mismo. Por lo que si lo aplicas a un “xlsm” te lo guardará así aunque le pongas cualquier otra extensión al nombre del libro.

 

- Lo apropiado para lo que deseas hacer es utilizar el método SaveAs. Ello conllevará un "costo adicional" en términos de líneas de programa como por ejemplo:


Sub CopiarLibroActivo()
Dim oldName$, newName$

With ActiveWorkbook

'Nombre original del libro con macros:
  oldName = .FullName
  .Save

'Nuevo nombre del libro que guardaré sin macros:
  newName = .Path & "\Otro nombre.xlsx"
  If Dir(newName) <> "" Then Kill newName

'Guardo el libro activo pero sin macros:
  Application.DisplayAlerts = False
    .SaveAs newName, FileFormat:=51
  Application.DisplayAlerts = True
 
'Vuelvo a abrir el libro original:
  Workbooks.Open oldName

'Cierro el libro sin macros:
  .Close False
End With

End Sub

 

 

 

Ahí @Cacho R especifica guardar el libro sin macros jaja, creo que hay que leer bien antes de comentar algo

Enlace a comentario
Compartir con otras webs

@chernan5 parece que el que no lo ha entendido eres tú y efectivamente "creo que hay que leer bien antes de comentar algo"

 

@silvercrow  dijo:

Cita

Yo lo que necesito simplemente seria que se guarde sin macros, o sea, no habrá entonces una manera de borrar las macros de la copia del libro que guarde, claro sin que se borren las del libro original.

 

.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.