Contador en Excel VBA

Hay varias formas de contar en MS Excel. Podemos usar funciones incorporadas como Count, CountIf, CountA, CountBlank, que están allí en Excel. Pero estas funciones no funcionarán correctamente en VBA y también tienen limitaciones. Para superar esto, tenemos muchas funciones y comandos y el proceso mediante el cual podemos ejecutar VBA Counter. VBA Counter se usa para contar la celda, contar el contenido de la celda y también se usa como temporizador de cuenta regresiva cuando podemos implementar la hoja de tiempo para medir cualquier tarea.

Con la ayuda de VBA Counter, también podemos contar las celdas con sus índices de color. Este índice de color puede incluir también el color de fuente o el color de fondo de la celda y los valores en negrita.

¿Cómo crear un contador en Excel VBA?

A continuación se muestran los diferentes ejemplos para crear un contador en Excel utilizando el código VBA.

Puede descargar esta plantilla de Excel VBA Counter aquí - Plantilla de VBA Counter Excel

Contador VBA - Ejemplo # 1

Tenemos algunos datos de números aleatorios en la columna A. Todos los valores mencionados son aleatorios y no tienen conexión, como en secuencia o serie. Ahora, con la ayuda del proceso VBA Counter, contaremos los números de valor más altos y más bajos y obtendremos el resultado en las celdas D2 y D3.

Contaremos el número y los colorearemos simultáneamente según el texto de color en la celda C2 y C3.

Para esto, siga los pasos a continuación:

Paso 1: Cree un botón de Comando que esté disponible en la pestaña Desarrollador debajo del Control Active X del menú Insertar como se muestra a continuación.

Paso 2: Ahora crea un botón como se muestra a continuación.

Paso 3: haga clic derecho en el botón creado y vaya a la opción Propiedades .

Paso 4: Cambie el título del botón que por defecto es CommandButton2 a cualquier nombre deseado. Aquí, hemos cambiado eso a " Contando celdas por valor ".

Paso 5: Una vez hecho, haga clic derecho en el botón creado y seleccione la opción Ver código para obtener la ventana VBA.

El Editor de Visual Basic se abre ahora y, de forma predeterminada, ya se ha creado una subrutina para el botón de comando.

Código:

 Private Sub CommandButton2_Click () End Sub 

Paso 6: Ahora necesitamos declarar 3 variables. Declare la primera variable donde almacenaremos los números y la segunda variable por la cual usaremos el contador como enteros como se muestra a continuación. Y la variable será tan larga para contar los números almacenados en cada fila.

Código:

 Private Sub CommandButton2_Click () Dim A como número entero Dim Count como número entero Dim LRow como Long End Sub 

Paso 7: Ahora seleccionaremos la primera celda de la hoja que es A1 como nuestro rango. Desde aquí, seleccionaremos las celdas hasta que tenga los números.

Código:

 Private Sub CommandButton2_Click () Dim A como número entero Dim Count como número entero Dim LRow As Long LRow = Range ("A1"). CurrentRegion.End (xlDown) .Row End Sub 

Paso 8: Ahora abriremos y escribiremos la condición en el bucle For para, si la celda tiene un valor mayor que 10, el color de la fuente de la celda cambiará a Amarillo y para el valor menor a 10, el color de la fuente de la celda cambiará a Azul con los índices de color 44 y 55 respectivamente.

Código:

 Private Sub CommandButton2_Click () Dim A como número entero Dim Count como número entero Dim LRow As Long LRow = Range ("A1"). CurrentRegion.End (xlDown) .Row For A = 1 To LRow If Cells (A, 1) .Value> 10 Entonces Count = Count + 1 Cells (A, 1) .Font.ColorIndex = 44 Else Cells (A, 1) .Font.ColorIndex = 55 End If Next A End Sub 

Paso 9: Ahora para ver la salida de los valores desde la celda A1 hasta el final, seleccionaremos las celdas como se discutió anteriormente en el código a continuación.

Código:

 Private Sub CommandButton2_Click () Dim A como número entero Dim Count como número entero Dim LRow As Long LRow = Range ("A1"). CurrentRegion.End (xlDown) .Row For A = 1 To LRow If Cells (A, 1) .Value> 10 Entonces Count = Count + 1 Cells (A, 1) .Font.ColorIndex = 44 Else Cells (A, 1) .Font.ColorIndex = 55 End If Next A Cells (2, 4) .Value = Count Cells (3, 4) .Value = 12 - Count End Sub 

Paso 10: Ahora ejecuta el código presionando el botón.

Veremos que las celdas que contienen los números menores a 10 están resaltadas en color azul. Y el mayor de 10 se resalta en amarillo.

Contador VBA - Ejemplo # 2

En este ejemplo, utilizaremos el contador VBA para medir el tiempo en el que podemos medir la toma que hacemos. Supongamos que si necesitamos medir el tiempo requerido para completar cualquier tarea, entonces el proceso que veremos aquí es el mejor para implementar.

Para esto, siga los pasos a continuación:

Paso 1: Cree las 2 pestañas de cualquier forma desde las opciones de Formas del menú Insertar como se muestra a continuación. Estamos seleccionando Rectángulo: esquinas redondeadas .

Paso 2: Cree 2 botones y asígneles el nombre de Inicio y Restablecer mediante los cuales iniciaremos el temporizador y borraremos la hora.

Paso 3: Ahora ve a VBA y abre un Módulo desde el menú Insertar.

Paso 4: escriba la subcategoría de Temporizador de inicio como se muestra a continuación.

Código:

 Sub Inicio () Fin Sub 

Paso 5: considere una palabra para la fila siguiente, como NextRow, donde seleccionaremos la hoja de trabajo en la que queremos implementar el código. Aquí, nuestra hoja es Sheet2 . Y aquí contaremos las filas de la celda +1, que es la celda A2, hasta que tengamos el archivo de cursor.

Código:

 Sub Start () NextRow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row + 1 End Sub 

Paso 6: Ahora para pasar a la siguiente fila usaremos el formato de vértice donde 1 en el corchete es para el eje Y.

Código:

 Sub Start () NextRow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row + 1 Cells (NextRow, 1) = Time End Sub 

Paso 7: escriba el código para restablecer debajo del mismo código de inicio.

Código:

 Sub Reset () End Sub 

Paso 8: ahora para restablecer, mantendremos el mismo código que Start pero la palabra clave cambiará a LastRow y eliminaremos +1 solo para no tener que pasar a otra fila.

Código:

 Sub Reset () lastrow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row End Sub 

Paso 9: Ahora, para borrar los datos de la última celda de la columna A a la primera celda, primero seleccione el rango de celdas con la función ClearContents .

Código:

 Sub Reset () lastrow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row Range ("A2: A" & lastrow) .ClearContents End Sub 

Ahora cierre la ventana de VBA.

Paso 10: haga clic con el botón derecho en la pestaña Inicio y seleccione la opción Asignar macro .

Paso 11: Seleccione la subcodificación de inicio que hicimos anteriormente.

Paso 12: lo mismo para el botón Restablecer también. Asigne el subcódigo Restablecer al botón Restablecer y haga clic en Aceptar y salga del modo de diseño para ejecutar el código.

Paso 13: Ahora haz clic en el botón Inicio primero. Obtendremos la hora de inicio como 3:51:33.

Paso 14: Ahora haz clic nuevamente en el botón Inicio 2-3 veces para obtener un lapso de tiempo múltiple. Ya veremos, hay un espacio de unos pocos segundos en cada iteración.

Paso 15: Ahora, después de eso, probaremos el botón Restablecer . Haz clic en Restablecer. Ya veremos, los datos ahora se borran y están listos para otras vueltas de conteo de tiempo.

Ventajas de Excel VBA Counter

  • Es muy fácil implementar el contador de vueltas de tiempo como vimos en el ejemplo-2.
  • VBA Counter tiene muchos tipos de implementación, esto no se limita solo a los ejemplos que hemos visto.

Cosas para recordar

  • Siempre es mejor asignar el código para cualquier botón cuando hemos realizado 2 o más tipos de código en un proceso.
  • Salga del modo de diseño una vez que la asignación y la ejecución del código se realicen desde la pestaña Desarrollador.
  • También podemos crear un contador de tiempo en vivo donde podamos ver la cuenta regresiva del tiempo o ver el tiempo en tiempo real.
  • Guarde la macro en Macro habilite el formato de archivo de Excel para que no perdamos nuestro código.

Artículos recomendados

Esta es una guía para el contador VBA. Aquí discutimos cómo crear un Contador VBA en Excel usando el código VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar el siguiente artículo para obtener más información:

  1. Uso del error de sobreflujo de VBA en Excel
  2. Ejemplos de error VBA 1004
  3. ¿Cómo usar VBA DoEvents?
  4. Métodos para ocultar columnas en VBA

Categoría: