Una manera pragmática con la que solemos hacer
orden en nuestros ordenadores es creando directorios o carpetas en el sistema
operativo para almacenar los múltiples ficheros que creamos en nuestros
quehaceres diarios con la computadora.
Guardar o almacenar un libro nuevo de Excel en
nuestra computadora es algo relativamente simple desde la interfaz de usuario
de este aplicativo. Sólo basta con hacer clic en la pestaña Archivo y luego
seleccionar el comando Guardar para desplegar el cuadro de dialogo Guardar
como... y posteriormente seleccionar una ruta de almacenamiento.
Es aún más simple cuando se trata de un libro de
Excel ya existente (ya creado). Ya que, con sólo presionar el icono del
disquete desde la ToolBar, o presionar la combinación de teclas Ctrl + G,
podemos salvar los cambios hechos en nuestra hoja de cálculo.
Sin embargo, automatizar esta tarea tan simple
desde el entorno de desarrollo del Visual Basic para Aplicaciones, quizás es lo
que muchos buscan al momento de hacer práctica esta rutina. Más aún cuando se
trata de crear una carpeta o directorio nuevo en una ruta específica de nuestro
sistema; obviamente para disponer allí una copia de nuestro libro de Excel.
Por ejemplo, si te diriges al entorno VBA de un
proyecto de Excel que estés trabajando, e insertas un módulo estándar y
posteriormente escribes el siguiente código; podrás crear rápidamente una
carpeta que contendrá una copia del libro de Excel desde donde ejecutes dicha
rutina. La carpeta creada será nombrada con la fecha y hora de tu sistema, y
además se almacenará en la misma ubicación del libro de Excel desde donde
ejecutes esta rutina.
Procedimiento Sub para crear una carpeta con una
copia del libro de Excel activo
Sub Crear_Carpeta_Y_Guardar()
Dim sRuta
As String
Dim sNombreCarpeta As String
Dim
sSeparadorRuta As String
Dim
sNombreLibroActual As String
sNombreLibroActual = Application.ActiveWorkbook.Name
sSeparadorRuta = Application.PathSeparator
sRuta =
Application.ActiveWorkbook.Path
sNombreCarpeta = CStr(Format(Date,
"dd-mm-yyyy")) _
&
"-" & CStr(Format(Time, "hh-mm-ss"))
If
Dir(sRuta & sSeparadorRuta & sNombreCarpeta, vbDirectory) = Empty Then
MkDir
(sRuta & sSeparadorRuta & sNombreCarpeta)
End If
Application.ActiveWorkbook.SaveCopyAs Filename:=sRuta _
&
sSeparadorRuta & sNombreCarpeta & sSeparadorRuta &
sNombreLibroActual
Application.StatusBar = "Una copia se guardó en: " & sRuta
_
&
sSeparadorRuta & sNombreCarpeta & sSeparadorRuta &
sNombreLibroActual
End Sub
Nota: si asignas el Procedimiento Sub Crear_Carpeta_Y_Guardar()
a una autoforma desde la interfaz de usuario, podrás ejecutarlo fácilmente al
hacer clic en ella.
Si analizas con detenimiento el anterior programa,
podrás notar que una vez se crea la carpeta y se almacena el libro de Excel
activo, Excel desde la interfaz de usuario muestra en la barra de estado un
mensaje de confirmación.
Pues bien, para que esté mensaje no permanezca
durante todo el tiempo en que el libro de Excel esté activo, procedemos a
desactivarlo con la siguiente rutina que se ejecuta al cambiar la selección de
una celda en cualquier hoja del libro de Excel.
Rutina que desactiva el mensaje en la barra de
estado de Excel
Private Sub Workbook_SheetSelectionChange(ByVal Sh
As Object, ByVal Target As Range)
If Not
(Application.StatusBar = False) Then
Application.StatusBar = False
End If
End Sub
Nota: la anterior rutina debe establecerse en el
evento SheetSelectionChange desde el módulo del objeto ThisWorkbook.
Algo muy importante que debes tener en cuenta antes
de ejecutar el presente programa, es que debes guardar inicialmente en tu
sistema el libro de Excel base con el código; de lo contrario quizás puedas
obtener un resultado no controlado.
• Si aún no te queda claro cómo implementar estas
dos rutinas en un libro de Excel, observa este video tutorial de apoyo y
aprende a realizarlo.
• Si quieres seguir el video paso a paso puedes
empezar con un Libro de Excel en blanco; sino es tu caso, descarga el Libro de Excel terminado.
excelente gracias... donde esta la siguiente parte:¿?
ResponderBorrarMuchas garcias, me ayudo bastante
ResponderBorrarExcelente, muy útil saludos
ResponderBorrarHola necesito una ayuda
ResponderBorrarbuena pero seria el mismo caso pero en vez que guarde una extension xls seria guardar un pdf se podria hacer?
ResponderBorrarBuena el link para descargar el ejemplo está caído no funciona dónde consigo el programa para yo practicar
ResponderBorrar