Sei sulla pagina 1di 6

EL OBJETO WORKSHEET(HOJA)

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

El rango modificado. Puede ser más de una celda.

Referencias ByVal en Microsoft Forms:

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.

esto es solo algunas partes del texto disponible en la ayuda.

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:

Range(«A1»).select ‘selecciona la celda A1 en la hoja activa. Esto es porque no especificamos el «Worksheets»


Range(«A1: B10»).select ‘selecciona todo el rango desde A1 hasta B10 en la hoja activa.

Worksheets(3).Range(«A1»).select ‘selecciona la celda A1 en la hoja 3

Range(«A1,A3,C5»).select ‘selecciona celdas separadas en la hoja activa.

Range(«Ingresos»).select ‘ selecciona la celda o conjunto de celdas que tengan


como nombre «ingresos» en la hoja activa

Range(«A1») = 35 ‘Hace que el número 35 aparezca en el la celda A1, en la hoja activa

Worksheets(3).Range(«A1:B10»).value =1 ‘Hace que el valor de todas las celdas del rango sean 1, en la hoja 3.

Notes que se puede usar «.value» o no. El resultado será el mismo.

Otra forma de utilizar el objeto range es asignarle una fórmula:

Worksheets(1).Range(«A1»).Formula = Int(10 * Rnd()) ‘ Esta propiedad devuelve el resultado de la fórmula (toma la


parte entera de un numero aleatorio entre 0 y 1 multiplicado por 10) y asigna dicho valor a la celda A1 y en la hoja 1

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.

ESTRUCTURA DE ITERACIÓN WILE - WEND

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

Explicación del código (los números representan las líneas de código)


1- Siempre se empieza con Sub seguida del nombre de la macro y 2 paréntesis (Sum()).
2- Seleccionamos la celda superior. "D1".
3- Asignamos a la variable “sum” (que es en la que quedará contenido el resultado) el valor de la celda superior.
4- Esta línea es la condición para entrar o salir del While y quiere decir "mientras la celda activa no este vacía",
5- Aquí ya entramos en el While donde hay 2 líneas que se repiten hasta que la condición no se cumpla.
6- La primera línea dentro del While hace bajar una posición la celda seleccionada, de esta forma podemos acceder a su
contenido y la segunda agrega este contenido a la variable "sum".
7-Con Wend salimos o volvemos a entrar al ciclo según se cumpla o no la condición
8- Una vez que salimos del ciclo colocamos el resultado queda en una celda activa.
9-Tanbien mostramos el resultado mediante un MsgBox (caja de mensajes)
10- Con esta línea se cierra el programa
Finalmente una vez que aplicamos la macro, la hoja nos queda

Se puede ver que los resultados en la celda activa y en la caja de mensajes coinciden.

LA DECLARACIÓN IF-THEN EN VBA

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.

Potrebbero piacerti anche