Inicio de sesión

Ya sé Excel,
pero necesito más

El manual que
estabas buscando


Ya sé Excel,
pero necesito más

El manual avanzado
que estabas buscando
www.necesitomas.com

En línea

En este momento hay 0 usuarios y 3 invitados en línea.

Guardar y cerrar libros

Buenas tardes,

de nuevo apelo a tus conocimientos.

Me gustaría saber tres cuestiones bien sencillas (o eso creo):

1. Comando que debo meter a un CommandBotton para guardar un Excel pero no
salir.
2. Lo mismo para "Guardar como".
3. Lo mismo para imprimir el libro completo.

Muchas gracias de antemano. Tus aportaciones siempre me sirven de mucho.

Saludos.

Rubén.

Imagen de pacomegia

Re: Guardar y cerrar libros

Hola Rubén:

para guardar un libro sin salir de Excel, emplea el método Save del libro
por ejemplo:
ActiveWorkbook.Save

Si le quieres cambiar el nombre al libro, emplea el método SaveAs, guardar como.
por ejemplo:
ActiveWorkbook.SaveAs Filename:=NombreArchivo

Puedes preguntar al usuario el nombre a dar al archivo mediante
Application.GetSaveAsFilename

Para cerrar el libro sin salir de Excel, el método Close. Puedes indicar si guarda los cambios o no:
ActiveWorkbook.Close SaveChanges:=True

Por último, para imprimir todas las hojas del libro, emplea el método PrintOut del libro:
ActiveWorkbook.PrintOut

En todos estos ejemplos he utilizado el libro activo, pero puedes aplicarlo a cualquier objeto tipo libro (Workbook).

Espero haber resuelto tu duda con esto.

------

La potencia sin control no sirve de nada.
Power is nothing without control.

muy útil

Tus aportaciones me resultaron de gran ayuda.

Muchas gracias.

SaveAs

Estoy intentando utilizar el método SaveAs pero al llevarlo a la práctica no me funciona.

Lo que intento hacer es poner varios botones a lo largo de un programa, que
me den la opción de "Guardar como" el Excel. Además, me gustaría usarlo en
dos casuísticas distintas: Después de guargar, no cierre el programa, y
después de guardar, sí cierre el programa.

Espero haber sido claro en la descripción del problema.

Muchas gracias, como siempre.

Imagen de pacomegia

SaveAs no muestra el cuadro de diálogo

El método SaveAs guarda el libro con el nombre que le indiques como argumento, pero no hace que aparezca el cuadro de diálogo guardar como, para que el usuario pueda elegir cómo guardarlo.
Para que sea el usuario quien elija, debes emplear el método
Application.GetSaveAsFilename
Con éste método se muestra el cuadro de diálogo y obtienes una cadena de texto con la ruta y el nombre del archivo que indique el usuario, que luego puedes utilizar como argumento del método SaveAs
Es decir, primero preguntas por el nombre del archivo y después guardas con ese nombre.
Por último, en otro paso más, después de haber guardado, tendrás que cerrar o no el libro y el programa según lo que necesites.

------

La potencia sin control no sirve de nada.
Power is nothing without control.

Madre mía...

Madre mia, el SaveAs and cia me están dando unos buenos quebraderos de
cabeza...

No soy capaz de poder introducir el código certero al commandbotton para que
me "guarde como".

En el mejor de los casos consigo que me pida un nombre, pero me lo guarda
con el mismo que tenía.

¿Sería alguien tan amable de decirme exactamente que es lo que tengo que teclear y en que orden? Parece que estoy un pelín torpe con este asunto y ahora mismo es la única solución que se me ocurre.

Lo siento por estar un poco espeso en este caso.

Muchas gracias de antemano.

Saludos.

¡ Lo conseguí !

Bueno, ya conseguí la opción "Guardar como" al hacer el evento click en un
command button.

Para que quede claro a todos:

Private Sub CommandButton1_Click()
ChDir "C:"
ActiveWorkbook.SaveAs Filename:= _
Application.GetSaveAsFilename, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End Sub

Muchas gracias por todo.

Imagen de pacomegia

ChDir

Bueno, veo que he llegado tarde a contestarte y que ya has conseguido que funcione.

me ha extrañado lo de establecer el directorio en C:
ChDir "C:"
¿es necesario esto para que funcione, o es por otro motivo?

------

La potencia sin control no sirve de nada.
Power is nothing without control.

Otro modo de hacerlo

La verdad es que puede que tengas rezón y no sea necesario. Lo puse porque
el procedimiento que he seguido es el de grabar macro, y al ver el código
que me había guardado, allí estaba. Luego retoqué un poco el código y
funcionaba perfectamente.

Otra forma distinta de hacerlo y quizá mejor es la siguiente:

Dim dlgSave As FileDialog
Set dlgSave = Application.FileDialog(msoFileDialogSaveAs)
dlgSave.Show
dlgSave.Execute

Un saludo.

Re: Guardar y cerrar libros

Buenas Tardes!!

Estoy utilizando la funcion de save as pero la duda que tengo es como hago para que ese archivo se guarde directamente en una carpeta de mi unidad C:\ y que el nombre del archivo sea igual al de una celda (Ej: =A1) de la hoja.

Muchas gracias.

Edú

Imagen de pacomegia

a ver si esto...

Utiliza el valor de la celda A1 como argumento.
por ejemplo, suponiendo que la celda A1 se encuentra en la hoja activa:

ActiveWorkbook.SaveAs "C:\" & Range("A1").Value

El nombre del archivo se compone de la parte que indica la ruta, en este ejemplo C:\ seguida del valor de la celda.

------

La potencia sin control no sirve de nada.
Power is nothing without control.

Re: a ver si esto...

Muchisimas gracias.. si funciono... ahora te molesto porque quiero que el archivo se guarde con referencia a una celda que tiene una fecha. ¿Como hago para que quede el nombre del archivo & la fecha?

Saludos!!

Edú

Imagen de pacomegia

da formato a la fecha

Utiliza la función format para dar formato al valor de la celda

Por ejemplo, para guardar un archivo en C:\ (como en el caso anterior) y que el nombre del archivo tenga un aspecto como este 20071210.xls (año, mes y día), y suponiendo que esa fecha está en la celda A1:

ActiveWorkbook.SaveAs "C:\" & Format(Range("A1").Value, "yyyymmdd")

La cadena para el formato está en inglés, y de year año, m month mes, d day día. En la ayuda de Excel parece que se puede poner en español, pero no es así, VBA no está traducido.

------

La potencia sin control no sirve de nada.
Power is nothing without control.


necesitomas.com en tu página principal de Google

Google

Buscar en necesitomas.com

Encuesta