Buscar en el blog

viernes, 24 de septiembre de 2010

VBA-Worksheet


Es el objeto siguiente a Application y Workbook en el orden jerárquico de Excel.

El objeto Worksheet recoge todos los métodos, propiedades y eventos realicionados con una hoja.

Si lees este artículo hasta el final sabrás:

Como se nombra una hoja
Como se activa
Como se borra el contenido
Como se elimina
Como se copia en otra hoja
Como se le cambia el nombre
Como se añade una nueva

EVENTOS

1) Evento Activate
Se produce al activar la hoja.

2) Evento SheetSelectionChange
Se produce al cambiar la selección de la hoja.

4) Evento SheetChange
Se produce al realizar un cambio en una celda de la hoja, excepto formatos.

5) Evento SheetBeforeDoubleClick
Se produce al realizar doble click en una celda de la hoja.

6) Evento SheetDeactivate Se produce al desactivar la hoja.


PROPIEDADES

1) Propiedad Name Devuelve/Establece el nombre la hoja.

SIGUE ATENTO, SEGUIRÁ CRECIENDO

miércoles, 22 de septiembre de 2010

VBA-Workbook









Es el objeto siguiente a Application en el orden jerárquico de Excel.

El objeto Workbook recoge todos los métodos, propiedades y eventos realicionados con el libro.

Si lees este artículo hasta el final sabrás:


Como se nombra un libro
Como se abre
Como se guarda
Como se guarda con otro nombre
Como se copia
Como se activa
Como se añade uno nuevo
Como se cierra 
Donde se ubica 






Con el objeto Workbook, introducimos tres conceptos nuevos:


Colección 
Entenderemos como colección a un conjunto de objetos a modo de array.
La colección 
Workbooks es la que contiene todos los libros abiertos en Excel en undeterminado momento.

Evento 
Un evento es una situación que se produce por una determinada acción en un objeto.
Un evento habitual es el que se produce al hacer click sobre un botón.
A un evento, podemos asociarle código VBA.


Metodo
Es una instrucción VBA de acción inmediata sobre un libro.




A continuación veremos los principales eventos, métodos y propiedades de un libro.

EVENTOS 
El código VBA de los eventos que se producen en un libro, deben insertarse en el objeto  ThisWorkbook del proyecto VBA (VBA-Project) 



1) Evento Open
Se produce al abrir el libro. 

2) Evento SheetActivate
Se produce al activar una hoja del libro.
 

3) Evento SheetSelectionChange
Se produce al cambiar la selección en una hoja del libro
 

4) Evento SheetChange
Se produce al realizar un cambio en una celda de cualquier hoja del libro, excepto formatos.
 

5) Evento SheetBeforeDoubleClick
Se produce al realizar doble click en una celda de cualquier hoja del libro.
 

6) Evento SheetDeactivate
Se produce al desactivar una hoja del libro.
 

7) Evento BeforeSave
Se produce inmediatamente antes de guardar el libro.
 

8) Evento BeforeClose
Se produce inmediatamente antes de cerrar el libro.

PROPIEDADES

1) Propiedad Name
Devuelve el nombre del libro

Msgbox ActiveWorkbook.Name



2) Propiedad Saved
Permite eliminar la visualización del mensaje "¿Desea guardar los cambios efectuados en el libro?"
Admite los valores True/False.
Con el valor a True se eliminará el mensaje.
El valor por defecto es 
False.

ActiveWorkbook.Saved = True/False





3) Propiedad Path
Devuelve el directorio del libro.

Msgbox ActiveWorkbook.Path



FORMAS DE NOMBRAR

1) Libro activo
ActiveWorkbook

2) Libro que contiene la macro en ejecución
ThisWorkbook

3) Por el nombre

Workbooks("Mi Libro.xlsm")

4) Por su posición en la coleccion Workbooks

Workbooks(2)

5) Por medio de una variable

Dim Libro as Workbook
Set Libro = Workbooks("Mi Libro.xlsm")
Libro

6) Por medio de una variable en la colección

'Como objeto
Dim Libro as Workbook

For Each Libro in Worksbooks
   Libro.Save
Next

'Por posición
Dim Libro as integer
For Libro = 1 to Worksbooks.Count
   Workbooks(Libro).Save
Next

METODOS DEL LIBRO

1) Open
Abre un libro.

Workbooks.Open "C:\Mi Libro.xlsm"

2) Save
Guarda un libro.

ActiveWorkbook.Save 
ThisWorkbook.Save
Workbooks.("C:\Mi Libro.xlsm").Save
Workbooks(2).Save
Libro.Save

3) SaveAs
Guarda un libro con otro nombre.

ActiveWorkbook.SaveAs "C:\Mi Otro Libro.xlsm"
ThisWorkbook.SaveAs "C:\Mi Otro Libro.xlsm"
Workbooks.("C:\Mi Libro.xlsm").SaveAs "C:\Mi Otro Libro.xlsm"
Workbooks(2).SaveAs "C:\Mi Otro Libro.xlsm"
Libro.SaveAs "C:\Mi Otro Libro.xlsm"

4) SaveCopyAs
Guarda una copia de un libro con otro nombre.

ActiveWorkbook.SaveCopyAs "C:\Mi Otro Libro.xlsm"
ThisWorkbook.SaveCopyAs "C:\Mi Otro Libro.xlsm"
Workbooks.("C:\Mi Libro.xlsm").SaveCopyAs "C:\Mi Otro Libro.xlsm"
Workbooks(2).SaveCopyAs "C:\Mi Otro Libro.xlsm"
Libro.SaveCopyAs "C:\Mi Otro Libro.xlsm"


5) Add
Añade un libro vacio.

Workbooks.Add

6) Activate
Activa un libro. 

ThisWorkbook.Activate
Workbooks("C:\Mi Libro.xlsm").Activate
Workbooks(2).Activate
Libro.Activate

7) Close
Cierra un libro. 

ActiveWorkbook.Close
ThisWorkbook.Close
Workbooks("C:\Mi Libro.xlsm").Close
Workbooks(2).Close
Libro.Close

viernes, 10 de septiembre de 2010

VBA-Application

Ya hemos dicho que los objetos Excel tienen una estructura jerárquica.

En lo mas alto jerarquía está el objeto Application.

Con el objeto Application, podemos usar una serie de métodos y propiedades para variar el comportamiento de Excel durante la ejecución de nuestras macros y formularios.

De todos los métodos y propiedades, vamos a quedarnos, de momento, con:


METODOS  Y  PROPIEDADES DE  APPLICATION


1) Metodo Quit
Cierra todos lo libros y cierra Excel.
Si existen libros sin guardar, nos avisará de si queremos hacerlo en función del valor de la propiedad DisplayAlerts.

Código:
Application.Quit
2) Propiedad DisplayAlerts
Permite eliminar la visualización de mensajes de Excel.
Admite los valores True/False.
Con el valor a False se eliminarán todos los mensajes.
El valor por defecto es True.

Código:
Application.DisplayAlerts = True/False
3) Propiedad ScreenUpdating
Permite eliminar la actualización de pantalla.
Admite los valores True/False.
Con el valor a False evitaremos la actualización de pantalla.
Se aconseja poner la propiedad en False para mejorar el rendimiento y eliminar el parpadeo de la pantalla durante la ejecución.
El valor por defecto es True.

Código:
Application.ScreenUpdating = True/False

4) Propiedad Visible
Permite eliminar la visualización de Excel.
Admite los valores True/False.
Con el valor a False evitaremos la visualización de Excel.
Se aconseja usar esta propiedad solamente con formularios.
Colocarla en False en el evento Initialize , y ponerlo a True en el evento Terminate, ambos en el formulario. 
El valor por defecto es True.
Código:
Application.Visible = True/False

5) Propiedad EnableEvents
Permite eliminar los eventos de hoja y libro.
Admite los valores True/False.
Con el valor a False evitaremos la ejecución los eventos de hoja y libro
No afecta a los controles en los formularios ni en las hojas.
Permanece con el valor True/False hasta que no se cambia.
El valor por defecto es True.

Código:
Application.EnableEvents = True/False