Ir al contenido principal

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 tipo entero
Dim Descuento As Integer
Precio = 0
Descuento = 0
Precio = Val(InputBox("Entrar el precio", "Entrar"))
 
'Si el valor de la variable precio NO es menor igual 1000, entonces, pedir descuento
If Not (Precio <= 1000) Then
      Descuento = Val(InputBox("Entrar Descuento", "Entrar"))
End If

ActiveSheet.Range("A1").Value = Precio
ActiveSheet.Range("A2").Value = Descuento
ActiveSheet.Range("A3").Value = Precio - Descuento
 
End Sub


Un ejercicio más con variables tipo texto y single (numero real):

Entrar el Nombre, la cantidad y el precio de un producto desde el teclado y guardarlos respectivamente en A1, A2 y A3. Calcular el total y guardarlo en A4. Si el total es superior a 10.000 o el nombre del producto el "Patatas", pedir un descuento, calcularlo el total descuento y guardarlo en A5, luego restar el descuento del total y guardarlo en A6. 

Sub variables2()

Dim Producto As String             'Variables tipo texto
Dim Cantidad As Integer
Dim Precio As Single                 'Variables tipo sigle
Dim Total As Single
Dim Descuento As Single
Dim Total_Descuento As Single

Precio = 0
Producto = InputBox("Entrar Nombre del Producto","Entrar")
Precio = Val(InputBox("Entrar el precio", "Entrar"))
Precio = Val(InputBox("Entrar la cantidad", "Entrar"))
Total = Precio * Cantidad
 
With ActiveSheet
          .Range("A1").Value = Producto
          .Range("A2").Value = Precio
          .Range("A3").Value = Cantidad
          .Range("A4").Value = Total
End With

' Si total mayor que 10.000 o el producto es Patatas, aplicar descuento.
If Total > 10000 Or Producto = "Patatas" Then
          Descuento = Val(InputBox("Entrar Descuento", "Entrar"))
         Total_Descuento = Total * (Descuento / 100)
         Total = Total - Total_Descuento
         With ActiveSheet
               .Range("A5").Value = Total_Descuento
               .Range("A6").Value = Total
         End With
End If

End Sub 


Los ejercicios publicados como ejemplo fueron tomados de http://www.cybercursos.net/

Comentarios

Publicar un comentario

Entradas más populares de este blog

Creando relaciones de confianza entre maquinas Linux por SSH

He buscado muchas veces sobre este mismo tema asi que hoy he decidido documentarlo para su posterior uso. De manera general una relación de confianza entre maquinas se establece con el objetivo de evitar la digitación de contraseña para acceso por terminal (ssh). Es decir que yo pueda acceder a una maquina y esta revise entre sus known_host (lista de equipos conocidos) y me permita acceso. Otra funcion importante es que se pueda realizar sincronizaciones mediante rsync y programadas por Cron evitando la intervención del usuario. Ahora si el procedimiento tecnico. Este proceso lo realize entre dos maquinas linux con sistemas operativos Ubuntu y Red Hat respectivamente. En el caso de la maquina con Ubuntu, escogi el usuario sobre el cual deseo crear la confianza. Este procedimiento hay que hacerlo con cada usuario en el cual desea evitar digitar la contraseña puesto que son entidades independientes con privilegios distintos dentro del S.O. usuario@ubuntu$ ssh-keygen - t rsa --

Configuración de una agregación de puertos (Link Aggregation) entre un switch HP 5500-48G EI y un DELL 6348

Las agregaciones de puertos nos permiten aumentar el ancho de banda de la conexión entre dos dispositivos, generalmente switches. En este caso puntual haré referencia a la configuración de una agregación de puertos entre un switch HP 5500-48G EI y un DELL 6348.  Luego de verificar con el soporte técnico (DELL), se encontró que la agregación dinámica no funciona correctamente por lo tanto fue necesario recurrir a la agregación estática. La agregación estática tiene como mayor diferencia que no utiliza el protocolo LACP ( Link Aggregation Control Protocol ). Sin más detalles la configuración en ambos switches: Configuración del switch DELL - Agregación de 4 puertos Giga para un ancho de banda total de 4Gbps Se crea un port-channel o un puerto lógico: interface port-channel 4 switchport mode trunk Cada una de las interfaces participantes de la agregación se configura con el número del grupo del port-channel: interface Gi1/0/33 channel-group 4 mode on swi

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 p