Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/01/2009, 15:24
Avatar de Pablus00
Pablus00
 
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Definicion y Tips para la programacion 1

1- Conceptos básicos-Definiciones:
MACRO: Una macro es un conjunto de instrucciones escritas en lenguaje Visual Basic, que nos permite automatizar ciertas tareas, que la aplicación no lo contempla. Por ejemplo, si queremos que al abrir un libro automáticamente inserte 2 hojas nuevas, recurriremos a una macro.


Las macros se pueden "grabar" o "escribir" en el Editor de Visual Basic.
  1. Para "grabar" una tarea rutinaria, vamos al menú Herramientas/Macro/Grabar nueva macro. Seleccionar el libro activo y asignarle un nombre. Con el botón Opciones, se podrá asignar un atajo de teclado, para poder ejecutarla con una combinación de teclas.
Acción: En la Hoja1, introducimos un título en la celda A1, le damos formato Negrita, Cursiva, Subrayado, Color de fuente y la combinamos con las 4 celdas siguientes. Detengamos la grabación.
Vamos a la Hoja2, al menú Herramientas/Macro/Macros. Seleccionamos la que acabamos de grabar y hacemos clic en el botón Ejecutar. Si le hemos asignado un atajo de teclado, solamente presionamos las teclas necesarias.
Listo: ya tenemos el título con todo el formato sin necesidad de repetir todos los pasos.
  1. Para "escribir" una macro, presionamos las teclas Alt+F11 para abrir el Editor de Visual Basic, o vamos por el menú Herramientas/Macro/Editor de Visual Basic.

¿Dónde colocar una macro? Dependerá de cual será su uso y para eso seleccionaremos alguno de los objetos que se encuentran en el margen izquierdo: Hoja1, ThisWorkBook, Módulos.
  1. Si tiene que ver con el libro abierto o activo, como por ejemplo, si queremos que se ejecute al abrir el libro, haremos doble clic sobre ThisWorkbook. Seleccionar el objeto (en General) que será WorkBook y algún procedimiento (en Declaraciones) que puede ser: Open, Close, WindowActivate, etc. Las instrucciones las escribimos o copiamos entre Private Sub y End Sub.
  2. Si se ejecutará cuando tengamos una hoja abierta, por ejemplo que la limpie o borre su contenido, haremos doble clic sobre Hoja1 o el número que sea. Seleccionamos el objeto que será WorkSheet y algún procedimiento como Activate, Change, SelectionChange, etc.
  3. Si queremos que la macro se ejecute en cualquier hoja, por ejemplo: ordenar columnas, copiar rangos, dar formatos, limpiar un rango, etc. la colocaremos en un módulo. Para eso ir al menú Insertar/Módulo del Editor. Luego doble clic sobre él. Aquí no seleccionamos ni objeto ni procedimiento sino que escribimos o copiamos toda la rutina, como el siguiente ejemplo:
Sub Borraceldas ( )
Range("A5:C20").Select
Selection.ClearContents
End Sub
En este caso se la llamará desde el menú Herramientas o se optará por asignar un atajo de teclado, para ser ejecutada desde cualquier hoja.
WORKBOOK: libro de trabajo. La expresión ActiveWorkbook hace mención al libro activo, en caso de haber más de uno abierto
SHEET: hoja de cálculo. Se utilizan también las siguientes expresiones: Worksheet, ActiveSheet (en este caso se hace referencia a la hoja activa)
RANGE: hace referencia al rango o conjunto de celdas a las que se aplicará una acción. Existen distintas maneras de mencionar un rango de celdas: Range("A4:C8"), Range(variable), Range("A:A;D:D"), Selection CELL: hace referencia a la celda. Se pueden utilizar expresiones como Cells(2,5), Cells(fila,col), ActiveCell, Selection
Hecho el repaso, a continuación verán las principales instrucciones, que ya sabrán dónde colocarlas. Si alguna rutina les presenta dificultad, pueden enviarme un mail con los comentarios al respecto.

2- Instrucciones básicas:
Trabajando con Libros:
1-Abrir un segundo libro:
Application.Workbooks.Open "C:\Mis docu\Libro1.xls" o Workbooks.Open "C:\....."
2-Activar un segundo libro:
Workbooks("Libro2.xls").Worksheets("Hoja3").Activa te o Workbooks(2).Sheets(3).Activate

3-Cerrar un libro (sin guardar):
Workbooks("Libro1.xls").Close False o ActiveWorkbook.Close False

4-Cerrar un libro (guardando los cambios):
ActiveWorkbook.Save

ActiveWorkbook.Close
5-Guardar un libro con otro nombre:
ActiveWorkbook.SaveAs Filename:="C:\Mis doc\Libro1.xls", FileFormat:=xlNormal, Password:="clave", ReadOnlyRecommended:=False
Estas son algunas de las opciones. Si se omiten, escribir la coma.
Ejemplo:
ActiveWorkbook.SaveAs Filename:="C:\Mis doc\Libro.xls",,, ReadOnlyRecommended:=False
6-Guardar un libro cuyo nombre será el valor de una variable:
ActiveWorkbook.SaveAs Filename:=Range("A2").Value
7-Para no mostrar aviso al salir, o al eliminar una hoja, o cualquier aviso que queremos obviar:
Application.DisplayAlerts= False 'volverla a True al finalizar la macro
8-Deshabilitar la opción de actualizar vínculos al abrir un libro:
Application.DisplayAlerts= False 'volverla a True al finalizar la macro
WorkBooks.Open Filename:= "C:\Mis docu\pruebas.xls", UpdateLinks:= 0
9-Para no mostrar la ejecución de la macro:
Application.ScreenUpdating = False 'volverla a True al finalizar la macro
10-Ejecutar una macro al abrir un libro:
Crear una rutina pública o insertar una rutina en un módulo:

Ejemplo: Sub Nuevamacro ()
'instrucciones
End Sub

Y en el evento Open del objeto ThisWorkbook: Private Sub Workbook_Open ()
Nuevamacro
End Sub


__________________
-- Nunca te des por vencido, aún vencido -- Web