Ir al contenido principal

Ejercicio Condicionales usando Macros en Excel


La toma de decisiones es determinante en la secuencia de ejecución de una macro. Las herramientas que proporciona VBA para la toma de decisiones descansan en los condicionales. Un ejemplo de estructuras condicionales en Excel es la función "SI", la cual permite hacer una prueba lógica y tomar generar dos resultados posibles dependiendo si la prueba lógica es verdadera o falsa. "SI su estatura en metros es superior a 1.5 mts, puede ingresar a la montaña rusa, de lo contrario NO". En la afirmación anterior solo aquellos niños con una estatura superior a 1.5 tendrán acceso al juego mecánico, los demás niños simplemente estarán excluidos del juego hasta que cumplan el requisito de forma imperativa.

El lenguaje de macros permite 3 estructuras condicionales distintas:

a) IIF(prueba_lógica, verdadero, falso). Su resultado obligatoriamente debe asignarse a una variable

variable = IFF(3>1, "Verdadero", "Falso"). El tipo de variable puede ser numero, texto, etc...


b)  If(prueba_lógica) then
            Instrucciones en caso de verdadero
      End If

La estructura anterior obebliga a que la prueba lógica se cumpla y así permitir la ejecución de las instrucciones en su interior. En caso contrario no las ejecuta y sigue con las instrucciones fuera de la estructura condicional.

c)  If(prueba_lógica) then
            Instrucciones en caso de verdadero
      Else
             Instrucciones en caso de falso o NO verdadero

      End If

Este tipo de estructura da una alternativa de ejecución en caso que la prueba lógica no se cumpla.

En la clase anterior propusimos el desarrollo de los siguientes ejercicios tomados de http://www.cybercursos.net.

Ejercicio 1

Restar los valores de las casilla A1 y A2. Guardar el resultado en A3. Si el resultado es positivo o 0, poner la fuente de A3 en azul, sino ponerla en rojo.

Solución
Sub Condicional_Else2()
    ActiveSheet.Range("A3").Value = AvtiveSheet.Range("A1").Value - _
    ActiveSheet.Range("A2").Value
    If ActiveSheet("A3").Value < 0 Then
        ActiveSheet.Range("A3").Font.Color = RGB(255,0,0)
    Else
        ActiveSheet.Range("A3").Font.Color = RGB(0,0,255)
    End If
End Sub

Ejercicio 2

Comparar los valores de las casilla A1 y A2 de la hoja activa. Si son iguales, escribir en A3 "Los valores de A1 y A2 son iguales", si el valor de A1 es mayor que A2, escribir "A1 mayor que A2", sino, escribir "A2 mayor que A1".

Solución
Sub Condicional()
    If ActiveSheet.Range("A1").Value = ActiveSheet.Range("A2").Value Then
        ActiveSheet.Range("A3").Value = "Los Valores de A1 y A2 son iguales"
    Else
        If ActiveSheet.Range("A1").Value > ActiveSheet.Range("A2").Value Then
            ActiveSheet.Range("A3").Value = "A1 mayor que A2"
        Else
            ActiveSheet.Range("A3").Value = "A2 mayor que A1"
        End If
    End If
End Sub

Comentarios

  1. Hola!! Si yo quisiera programar en VBA una condición para una macro que diera formato condcional a un rango determinado de celdas, según el parámetro "si las celdas contiguas tienen igual valor", como deberia hacer?
    Es decir, si A3 es igual a B3, si F8 es igual a G8, etc...

    ResponderEliminar
  2. HOLA SE PUEDE UTILIZAR UN CONDICIONAL "Y" PARA MACROS, AGRADEZCO TU AYUDA

    ResponderEliminar
  3. HOLA SE PUEDE UTILIZAR UN CONDICIONAL "Y" PARA MACROS, AGRADEZCO TU AYUDA

    ResponderEliminar

Publicar un comentario

Entradas más populares de este blog

Variables y Tipos de datos - Macros en Excel

Las variables son útilies en la creación de Macros. Son de nuestro especial interés cuando deseamos desarrollar formulas personalizadas (User Defined Formulas). Para introducirnos en el tema de la creación de formulas, necesitamos reconocer los tipos de datos existentes y tener la capacidad de utilizarlos. A continuación se presenta una tabla con los tipos de datos y la capacidad de almacenamiento según el tipo.


Cada de uno de estos tipos de datos deben usarse en concordancia con el objetivo de la macro. El siguiente ejercicio muestra el uso de variables tipo entero (integer):

Entrar una cantidad que representa el precio de algo por el teclado con la instrucción InputBox y
guardarlo en la celda A1 de la hoja activa. Si el valor entrado desde el teclado (y guardado en A1) es superior a 1000, pedir descuento con otro InputBox y guardarlo en la casilla A2 de la hoja activa.
Calcular en A3, el precio de A1 menos el descuento de A2.

Sub variables1()
Dim Precio As Integer     'Variables ti…