Estableciendo una pausa entre instrucciones mediante VBA para Microsoft Excel.
El tercer elemento que necesitaremos para entender los bucles es la posibilidad de reproducirlo a cámara lenta.
Para ello lo que haremos es establecer una pausa entre las instrucciones.
El código usado en el ejemplo es el siguiente:
Primero mediante la instrucción Now se puede obtener la fecha y la hora actual.
Este es el aspecto que tiene.
TimeValue nos permite transformar una cadena de texto en un valor tipo fecha hora.
Mediante un MsgBox vemos su aspecto.
Si unimos estas dos instrucciones, podemos conseguir que mediante un condicional, no se ejecute la siguiente instrucción hasta que pase una cantidad de tiempo que sumemos al momento actual.
Suele sumarse un número de segundos a Now.
En el ejemplo sumamos 5 segundos TimeValue("00:00:05")
Se muestra un primer mensaje, y tras pulsar el botón Aceptar ....
Tras cinco angustiosos segundos de espera, se ejecuta la siguiente instrucción, mostrando el segundo mensaje.
Usaremos esta técnica para poder ver como se van ejecutando cada segundo las instrucciones en los bucles, ya que de forma contraria podría parecer que se ejecutan en un único paso.
Aquí tenéis el código VBA completo por si lo queréis copiar:
Option Explicit
Sub establecerPausa()
'con Now obtenemos la fecha y hora actual
MsgBox (Now)
'TimeValue permite transformar una cadena de texto en un valor Time de VBA
'TimeValue ("00:00:01") representa 1 segundo
MsgBox (TimeValue("00:00:01"))
'Application.Wait estable una pausa en el código hasta la fecha y hora indicadas
Hoy os muestro como cambiar el color de fondo (background) de una celda en una celda de Microsoft Excel mediante VBA.
Estas instrucciones serán muy útiles a la hora de usarlas en bucles, ya que harán muy visual la ejecución del bucle.
Para ello usaremos la instrucción Cells(n, m).Interior.Color, a la que asignaremos el color deseado.
Para definir el color usaremos el método RGB(rrr, ggg, bbb), que a partir de los valores de los tres colores primarios da como resultado el color elegido.
Podéis encontrar información sobre los componentes RGB en la wikipedia, por ejemplo en la siguiente url https://es.wikipedia.org/wiki/RGB
En este caso he usado el selector de color de Microsoft Paint para mostraros el color que se va a obtener.
El código usado en el ejemplo es el siguiente:
Y el resultado el que se muestra a continuación:
El código usado en el ejemplo es el siguiente (para copiar y pegar):
En un Select Case de VBA para Microsoft Excel es posible crear un Case que se ejecute entre dos valores, para ello usaremos la instrucción Select M To N.
Esto permite crear en una única instrucción una respuesta a varios valores de la variable de control.
La línea de código que hemos modificado es la siguiente:
El código completo es el siguiente:
El resultado es el mismo que el código que veíamos ayer con menos líneas.
El código completo a conticuación:
Option Explicit
Sub condicional()
'Declaramos una variable numerica
Dim dia As Integer
Dim dato As Integer
dato = Range("B2").Value
Select Case dato
Case 1 To 5:
MsgBox ("Dia laborable")
Case 6 To 7:
MsgBox ("Fin de semana")
Case Else:
MsgBox ("Dato incorrecto introduzca un numero del uno al siete")
En un Select Case de VBA para Microsoft Excel es posible crear un Case que se ejecute cuanto no se cumplan las condiciones de ninguno de los anteriores.
La instrucción concreta es la siguiente.
Esto sustituye en nuestro ejemplo con una sola instrucción a tres condicionales en nuestro ejemplo original.
Este es el código completo del ejemplo.
Sub condicional()
'Declaramos una variable numerica
Dim dia As Integer
Dim dato As String
dato = Range("B2").Value
Select Case dato
Case 1:
MsgBox ("lunes")
Case 2:
MsgBox ("martes")
Case 3:
MsgBox ("miercoles")
Case 4:
MsgBox ("jueves")
Case 5:
MsgBox ("viernes")
Case 6:
MsgBox ("sabado")
Case 7:
MsgBox ("domingo")
Case Else:
MsgBox ("Dato incorrecto introduzca un numero del uno al siete")