Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
El objeto Worksheets representa a las hojas de un libro de Excel. El acceso al mismo puede ser:
La hoja active. –> ActiveSheet
Llamada a la hoja 1. –>WorkSheets(“Hoja1”)
Llamada a la primera hoja de la colección. –>WorkSheets(1)
Llamada a la última hoja de la colección. –>WorkSheets(WorkSheets.Count)
Llamada a una hoja de otro libro. –>
Workbooks(“Libro1”).Worksheets(“Hoja1”)
Workbooks(“Libro2”).Worksheets(“Hoja1”)
Propiedades: a excepción de “name” todas son de lectura.
.Name. –>Nombre de la hoja.
.Index. –>Numero de la hoja dentro del índice numérico de la colección.
.Count. –>Devuelve el número de hojas dentro de la colección.
.Next/previous. –>Devuelve la hoja siguiente/anterior.
.Used Range. –>Devuelve un objeto range con el rango de la hoja que tiene datos.
Eventos:
.Activate. –>activa la hoja
.calculate. –>reclacula la hoja especificada.
.Delete. –>Borra la hoja.
.Protect. –>Protege la hoja señalada.
Evento Change:
Ocurre cuando alguna celda de la hoja de cálculo es modificada por el usuario o por un vínculo externo.
Target
La palabra clave ByVal en Microsoft Forms indica que un argumento se transfiere como un valor; este es el significado
estándar de ByVal en Visual Basic. Sin embargo, en Microsoft Forms, puede utilizar ByVal con un objeto ReturnBoolean,
ReturnEffect, ReturnInteger o ReturnString. Cuando lo hace, el valor transferido no es un simple tipo de datos; es un
puntero al objeto.
en resumen "Target es el rango(Range en inglés) que deseas trabajar, puede ser una celda o varias. y como dice la
ayuda el evento se produce, es decir la hoja cambia cuando tu rango(es decir "Target") cambia, entonces se produce el
evento que programaste.
por ejemplo tu deseas que si el valor de target es igual o mayor que 7,te emita un mensaje, digamos por ejemplo
"Aprobado" y si es menor "Reprobado".
El objeto Range
se refiere a una celda específica, una celda activa, un conjunto de celdas (separadas o juntas), o una fila entera o una
columna.
Es decir, podemos aplicarla para seleccionar, dichas celdas, o bien para darles algún valor, o aplicarles alguna fórmula.
Primero observemos las formas de poder seleccionarlas:
Worksheets(3).Range(«A1:B10»).value =1 ‘Hace que el valor de todas las celdas del rango sean 1, en la hoja 3.
La función offset
sirve para poder moverse a través de la hoja de cálculo, tal como si lo hiciéramos con las flechas del teclado (arriba,
abajo, izquierda, derecha).
Offset(número de filas, número de columnas)
Ejemplos:
ActiveCell.Offset(1, 0).Select -> Avanza una fila (abajo)
ActiveCell.Offset(0, 1).Select -> Avanza una columna (derecha)
ActiveCell.Offset(2, -1).Select -> Avanza 2 filas (abajo) y retrocede 1 columna (izquierda)
ActiveCell.Offset(0, 0).Select -> Se mantiene en la misma celda activa
El término ActiveCell
sirve para referirse a la celda actualmente seleccionada en una hoja de cálculo. Siempre que se haga click en cualquier
celda, esta automáticamente se convertirá en la ActiveCell. Una vez que la celda es seleccionada se pueden ingresar
funciones o valores a la celda.
INTRODUCCION:
Esta es una iteración en la que no sabemos de antemano cuantas veces se repetirá el ciclo por lo tanto debe haber una
condición para salir de el ya que en caso contrario el ciclo se repetiría en forma indefinida.
Para explicar While - Wend me parece que lo mejor es dar un ejemplo en el que iremos analizando cada línea de código.
Vamos a sumar un rango de números que están ubicados en una columna. En la hoja de cálculo solo debemos poner los
números (sin dejar espacios en blanco) . Luego de aplicar la macro el resultado deberá quedar en la primera celda vacía.
En este caso sumaremos una cantidad indefinida de números naturales los que introducimos en la columna "D"
empezando por la "D1" y finalizando con la introducción del Nº 283226 como se ve en la figura
el programa VBA es
Se puede ver que los resultados en la celda activa y en la caja de mensajes coinciden.
En ocasiones necesitamos ejecutar algunas líneas de código de nuestra macro solamente cuando alguna condición se
haya cumplido. La declaración If-Then nos permite validar una condición para tomar una decisión adecuada.
La sentencia If-Then en VBA es la más básica de todas las declaraciones de control de flujo que son aquellas
declaraciones que nos permiten tomar decisiones en base a una condición. Esta declaración la podemos traducir como
Si-Entonces y la utilizaremos en situaciones donde necesitamos realizar la siguiente evaluación: Si se cumple la
condición Entonces haz esto.
EJEMPLO DE LA DECLARACIÓN IF-THEN
Para probar el funcionamiento de la declaración If-Then inserta un botón de comando (Control ActiveX) en una hoja de
Excel y haz doble clic sobre él para colocar el siguiente código:
En el primer paso se hace la declaración de las variables que utilizaré en el resto del código.
En el segundo paso asigno el valor de la celda A1 a la variable calificación.
El tercer paso contiene la declaración If-Then y que prueba Si el valor de la variable calificación es mayor o
igual a 60. En caso de ser verdadero Entonces se asigna el valor “Aprobado” a la variable resultado.
El último paso es asignar el valor de la variable resultado a la celda B2.
Ahora observa el resultado al ejecutar esta macro.
LA DECLARACIÓN IF-THEN-ELSE
Parece que todo funciona muy bien en el código anterior pero aún lo podemos mejorar agregando la declaración Else de
manera que tengamos una declaración de la forma If-Then-Else. Esta variante nos permite hacer la siguiente evaluación:
Si se cumple la condición Entonces haz esto De lo contrario haz otra cosa.
La declaración Else en VBA nos permite indicar otro bloque de instrucciones que se deben ejecutar en caso de que la
condición sea falsa. De esta manera podemos tomar una acción determinada en caso de que la condición se cumpla o
en caso de que no se cumpla. Ahora modificaré el ejemplo anterior para asegurarme de que en caso de que la condición
de calificación mayor o igual a 60 no se cumpla se despliegue el resultado “reprobado”. Observa el siguiente código.
En el tercer paso puedes observar la declaración If-Then-Else. Ahora observa el efecto de este cambio al momento de
ejecutar el código:
Por último, quiero que observes que en este segundo ejemplo la declaración If-Then-Else termina con la declaración
End If. Siempre que utilicemos la declaración If-Then o la declaración If-Then-Else debemos terminar con End If.
La única ocasión donde no se termina con End If es cuando la declaración If-Then se puede colocar en una sola línea
como es el caso del primer ejemplo de este artículo.