Como ingresar solo numeros y letras en textbox





Anteriormente se publicó una forma de validación de textbox donde se restringía el ingreso de datos a solo números o letras, en esta oportunidad te presentó otra forma de validar textbox y permitir solamente que se ingresen números o letras, cual de las dos formas usar dependerá de cada uno, las dos sirven para validar textbox y restringir el ingreso de datos; es posible que si estás leyendo sobre validación de datos en textbox, te interese como ingresar automáticamente barras de fechas en textbox, como ingresar solo números en textbox, o validar textbox para el ingresos solamente de texto en textbox.

Recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

El ejemplo de macro que permite validar textbox permitiendo que solamente se ingrese números o textos, se puede descargar desde el link el final, el código está abierto y no tiene ningún tipo de restricción, básicamente lo que hace la macro es recorrer la cadena de texto escrita hasta el momento del ingreso del carácter en el textbox, apelando a la tabla de código ascii, determina si el carácter ingresado está dentro de la serie de caracteres del código ascci que no representan número o letras y en caso afirmativo borra el carácter escrito.

En un primer momento se hace un bucle desde el primer carácter al último ingresado en el textbox con la estructura For...Next, posteriormente se carga en una variable, Car, en este caso el número que le corresponde en la tabla de código ascci al carácter ingresado.

For i = 1 To Lar
Car = Asc(Mid(Tex, i, 1))

Con la estructura If ... End If se determina si el número que le corresponde al carácter ingresado en la tabla de código asccii es distinto de letra o número, en caso positivo procede a reemplazar el carácter ingresado por un carácter vacío o lo que es lo mismo lo borra, el código que permite hacer lo mencionado en este ejemplo es el siguiente:

If Car <= 47 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 58 And Car <= 64 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 91 And Car <= 96 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 123 And Car <= 208 Then '209 'ñ minúscula
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 210 And Car <= 240 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 242 Then '241 Ñ mayúscula
TextBox1.Value = Replace(Tex, Chr(Car), "")
End If

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.









Mira estos vídeos que quizás te sean de utilidad

   


Código que se inserta en un formulario




Private Sub CommandButton1_Click()
TextBox1 = Clear
TextBox1.SetFocus
End Sub

Private Sub TextBox1_Change()
'Valida para que solo se ingrese números o letras
Dim Tex As Variant, Car As Variant, Lar As Integer
On Error Resume Next
Tex = Me.TextBox1.Value
Lar = Len(Me.TextBox1.Value)
For i = 1 To Lar
Car = Asc(Mid(Tex, i, 1))
If Car <= 47 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 58 And Car <= 64 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 91 And Car <= 96 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 123 And Car <= 208 Then '209 'ñ minúscula
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 210 And Car <= 240 Then
TextBox1.Value = Replace(Tex, Chr(Car), "")
ElseIf Car >= 242 Then '241 Ñ mayúscula
TextBox1.Value = Replace(Tex, Chr(Car), "")
End If
Next i
End Sub


Código que se inserta en un módulo

Sub muestra()
UserForm1.Show

End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como recorrer una cadena de caracteres





En varios post se ha apelado a los bucles para recorrer filas en busca de datos o para escribir datos en celdas, ya sea con la estructura For ... Next; While ... WendDo ... Loop; For Each ... Next todas las anteriores estructuras permiten realizar un bucle para recorrer datos u objetos.

En esta oportunidad voy a mostrar como recorrer una cadena de texto o string; una cadena de texto o string se puede definir como un conjunto de letras, espacios, símbolos; es decir por ejemplo si en la celda A1 tengo el siguiente dato "En programarexcel.com podrás descargar cientos de macros gratis"; todo lo encerrado entre comillas se puede denominar una cadena de texto o string en este caso es una frase compuesta por varias palabra y dichas palabras por varios caracteres y espacios, la macro permite recorrer la cadena de caracteres o string, es decir cada uno de las letras, número o espacios que forman la cadena o string.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

Es necesario descargar el archivo de ejemplo para poder entender en forma más sencilla lo que aquí se explica, es gratis y no tiene ninguna restricción, con dicho ejemplo podrás como dice el post recorrer una cadena de caracteres mediante una macro, ello en pos de buscar algún carácter en especial o encontrar una subcadena de caracteres en el string principal.

En el libro de ejemplo se podrá observar un la columna B un listado de Compañias Aseguradoras, cuyo nombre se encuentra en MAYÚSCULA; el objeto del ejemplo es recorrer la cadena de caracteres de cada una de las filas donde se encuentra el nombre de la compañia aseguradora, hasta la última fila con datos; determinando la macro al recorrer la cadena o string si el carácter coincide con la letra "A" Mayúscula; en caso de coincidir el carácter, que el bucle recorre en ese momento, con la letra mencionada la cambia por "a" MINÚSCULA.

En otras palabras la macro recorrerá el nombre de todas las compañías aseguradoras que están en la columna B, cambiando la letra "A" mayúscula por la letra "a" minúscula, en el ejemplo se podrá aprender como determinar el largo de una cadena con el siguiente código:

Lar = Len(Tex)

Como extraer caracteres de una cadena y asignarlos a una variable como por ejemplo:

Car = Mid(Tex, i, 1)

Como reemplazar texto son la siguiente función de VBA:

a.Range("B" & x) = Replace(Tex1, Car, "a")

Como cambiar un texto a Mayúscula, en este ejemplo no figura, pero cambiar a minúscula se usa LCase en vez de Ucase:

Range("B" & x) = UCase(Range("B" & x))

Aunque en este ejemplo no se usa es necesario cuando se trabaja con cadena de textos saber ciertas funciones que permitirán trabajar con cadenas de texto o string, si quieres profundizar visita el link que mostrará un tutorial sobre cadenas de texto o string.

Para lograr  cambiar la letra "A" mayúscula por la "a" minúscula, se realiza un bucle con la estructura For ... Next, determinando el largo de la cadena de texto y recorriendo del primer al último carácter determinado por la función Len que cuenta la cantidad de caracteres que tiene la cadena.

El bucle se hace de la siguiente manera.

For i = 1 To Lar
Car = Mid(Tex, i, 1)
Tex1 = Mid(Tex, 1, i)
If Car = "A" Then
'forma más fácil de reemplazar todos los caracteres en la cadena de texto
'a.Range("B" & x) = Replace(Tex, "A", "a")
a.Range("B" & x) = Replace(Tex1, Car, "a")
End If
Next i
Next x

El bucle al recorre de la primer a la última carácter de la cadena de texto en la variable Car se asigna el carácter que se va recorriendo en ese momento para ello con la función Mid se va extrayendo el carácter que recorre el bucle en ese momento; la variable Text1 va acumulando todos los caracteres recorridos hasta el momento; posteriormente con If se determina si el carácter que está en la variable Car es = a "A" en caso positivo reemplaza en la cadena Text1 (que acumula todos los caracteres recorridos por el buce), la letra "A" por "a"; luego sigue haciendo lo mismo hasta el último carácter y hasta la última fila con datos, recomiendo bajar archivo y ver vídeo tutorial sobre el ejemplo presentado.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.







Otros vídeos que pueden ser de interés:

   


Código que se inserta en un módulo




Sub RecorreCaracteres()
Dim Tex As Variant, Car As Variant, Lar As Integer
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets("Hoja1")
uf = a.Range("A" & Rows.Count).End(xlUp).Row
For x = 2 To uf
Tex = a.Range("B" & x)
Lar = Len(Tex)

For i = 1 To Lar
Car = Mid(Tex, i, 1)
Tex1 = Mid(Tex, 1, i)
If Car = "A" Then
'forma más fácil de reemplazar todos los caracteres en la cadena de texto
'a.Range("B" & x) = Replace(Tex, "A", "a")
a.Range("B" & x) = Replace(Tex1, Car, "a")
End If
Next i
Next x
Application.ScreenUpdating = True
End Sub


Sub mayus()
uf = Range("A" & Rows.Count).End(xlUp).Row
For x = 2 To uf
Range("B" & x) = UCase(Range("B" & x))
Next x
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como insertar filas en hojas de Excel





Cuando se programa una macro es algo más que común hacer o requerir que la macro inserte filas en la hoja de Excel, no obstante muchas veces tenemos duda como hacerlo, este post explica y muestra como se puede insertar filas con una macro; anteriormente se mostró como insertar columnas con macro, quizás sea de interés, dejo el link para quien quiera aprender un poquito más al respecto, también existe un post que muestra una macro que permite insertar celdas.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

El ejemplo puede ser descargado desde el link del final, el código es abierto y su uso es libre, recomiendo descargar el ejemplo para comprender con mayor facilidad el funcionamiento de la codificación inserta en el libro.

El ejemplo de macro que permite instar filas en Excel, muestra distintas forma de insertar filas, cada uno utilizará la forma que más convenga en el momento de programar, ya que se puede obtener referencias a filas mediante variables que se obtienen de distintas celdas de otros valores, de filas de búsqueda, en fin los datos para hacer referencia a las celdas o la cantidad de filas a insertar en Excel pueden surgir de varias maneras, es por ello que se expone diversas formas de insertar filas.

Por ejemplo en el siguiente código se inserta una fila a partir de la fila 9 pero se utiliza para ello variables para determinar el número de fila

x = 8
a.Range("A" & x + 1 & ":O" & x + 1).Insert

La siguiente es otra forma donde se inserta una fila a partir de la fila 10, no se utiliza variables sino que directamente se escribe la fila a partir de donde se debe insertar una fila.

Rows("10:10").Insert

El código que se muestra a continuación, permite insertar con macro 3 filas a partir de la fila número 15.

Rows("15:17").Insert

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.








Acá tienes otros vídeos que te pueden interesar, suscribe y activa la campanita para que aparezca en tu mail una notificación cuando se suba nuevo contenido que quizás sea de tu interés.


   



Código que se inserta en un módulo




Sub InsertarFilas()
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets("Hoja1")
a.Range("A3").EntireRow.Insert

x = 8
a.Range("A" & x + 1 & ":O" & x + 1).Insert

a.Range("A6: A8").EntireRow.Insert

Rows("10:10").Insert

Rows("15:17").Insert
Application.ScreenUpdating = True
End Sub

Sub elimina()
Application.ScreenUpdating = True
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
For x = uf To 2 Step -1
If Range("A" & x) = Empty Then Range("A" & x).EntireRow.Delete
Next x
Application.ScreenUpdating = True
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como determinar el minimo valor dependiendo de una o varias condiciones





Anteriormente se mostró como establecer con macro el máximo valor de una columna dependiendo de condiciones, en esta oportunidad voy a mostrar lo contrario, es decir como determinar el mínimo valor de una columna en base a varios criterios; existen otros post relacionados que quizás interesen:  como determinar el máximo valor de una columna y como determinar el mínimo valor de una columna, el presente ejemplo determina el mínimo valor de una columna teniendo en cuenta varios criterios, sugiero descargar el libro de ejemplo desde el final del post, será más fácil entender el código si se observa como trabaja la macro, recuerda que es gratuita su descarga y utilización, pudiendo cada lector adaptarlo a sus necesidades o proyecto que este realizando.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

El ejemplo de macro de Excel expuesto permite determinar el mínimo valor de una columna en base a criterios, precisamente en este ejemplo, se obtiene el mínimo valor de la columna A, pero dependiendo de que el valor de la columna B sea menor a 40.000 y en la columna C y fila correspondiente tenga el texto "Tomy", si no se dan esas condiciones por más que haya un valor más chico, pero que no cumplan las condiciones mencionadas la macro no lo tendrá en cuenta como el mínimo.

El código que se utiliza para saber cual es el mínimo valor de una columna, pero en base a criterios es el siguiente:

'Se pueden seguir agregando condiciones hasta 126 pares de criterio expresando rango y criterio separado por coma
Cells(uf, "A") = Application.WorksheetFunction.Minifs(Range("A2" & ":A" & uf - 1), Range("B2" & ":B" & uf - 1), "<40000", Range("C2" & ":C" & uf - 1), "Tomy")

En el ejemplo solo se usaron dos criterios  que la columna B sea menor a 40.000 y la columna C sea igual a "Tomy", sin embargo es de destacar que se pueden seguir agregando criterios para ello se debe tener presente la sintaxis, primero se expone el rango donde están los datos a evaluar y seguidamente el criterio; luego separado por coma el otro rango y el criterio respectivo y así sucesivamente, es decir rango a evaluar, criterio, rango a evaluar, criterio; tal cual se muestra en el código que sigue:

Minifs(Range("A2" & ":A" & uf - 1), Range("B2" & ":B" & uf - 1), "<40000", Range("C2" & ":C" & uf - 1), "Tomy")

En este ejemplo también se puede aprender como determinar la última fila con datos y cargar dicho valor en una variable:

 uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row

También se puede aprender como mostrar un msgbox que muestre el máximo valor dando formato al mismo:

MsgBox ("La cantidad de registros es: " & Format(Cells(uf, "A"), "#,##0.00")), 

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.










Código que se inserta en un módulo




Sub Minifs()
Application.ScreenUpdating = False
On Error Resume Next
Dim uf As String
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf, "A").ClearContents
'Se pueden seguir agregando condiciones hasta 126 pares de criterio expresando rango y criterio separado por coma
Cells(uf, "A") = Application.WorksheetFunction.Minifs(Range("A2" & ":A" & uf - 1), Range("B2" & ":B" & uf - 1), "<40000", Range("C2" & ":C" & uf - 1), "Tomy")
Cells(uf, "A").NumberFormat = "#,##0.00"
MsgBox ("La cantidad de registros es: " & Format(Cells(uf, "A"), "#,##0.00")), vbInformation, "AVISO"
Application.ScreenUpdating = True
End Sub





Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como determinar el maximo valor dependiendo de una o varias condiciones





Como determinar el máximo valor de una columna pero dependiendo de condiciones, eso es lo que se mostrará en el siguiente ejemplo, anteriormente se expuso como determinar el máximo valor de una columna y como determinar el mínimo valor de una columna, este ejemplo como se dijo determina el máximo valor de una columna, pero en base a condiciones.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

El ejemplo de macro de Excel, como su nombre lo indica permite determinar cual es el máximo valor de una columna, pero teniendo presente ciertas condiciones, desde el link del final se puede descargar el ejemplo, recuerda donar si te es posible, recomiendo su descarga para observar el código y la macro en funcionamiento para poder interpretar con mayor facilidad el código que contiene.

Básicamente el código que permite establecer cual es el máximo valor es el siguiente:

Cells(uf, "A") = Application.WorksheetFunction.Maxifs(Range("A2" & ":A" & uf - 1), 
Range("B2" & ":B" & uf - 1), "<40000", Range("C2" & ":C" & uf - 1), "Dayra")


El código anterior permite escribir en el última celda, ustedes pueden elegir la celda donde requieran en dato e incluso en una variable para luego utilizarla en el código; el máximo valor que existe en la Columna A, pero dependiendo que que en la columna B y fila correspondiente el valor que exista en la celda sea menor a 40.000 y en en la columna C fila correspondiente el texto escrito sea igual a "Dayra"; la macro establece cual es el máximo valor de la columna A, pero  si se cumplen estas dos últimas condiciones; en el ejemplo puede observarse que existen valores muchos mayores al máximo que determina la macro, pero no cumplen las condiciones dadas.

En este ejemplo también se puede aprender como determinar la última fila con datos y cargar dicho valor en una variable:

 uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row

También se puede aprender como mostrar un msgbox que muestre el máximo valor dando formato al mismo:

MsgBox ("La cantidad de registros es: " & Format(Cells(uf, "A"), "#,##0.00")), 

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.








Código que se inserta en un módulo




Sub Maxifs()
Application.ScreenUpdating = False
On Error Resume Next
Dim uf As String
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf, "A").ClearContents
Cells(uf, "A") = Application.WorksheetFunction.Maxifs(Range("A2" & ":A" & uf - 1), Range("B2" & ":B" & uf - 1), "<40000", Range("C2" & ":C" & uf - 1), "Dayra")
Cells(uf, "A").NumberFormat = "#,##0.00"
MsgBox ("La cantidad de registros es: " & Format(Cells(uf, "A"), "#,##0.00")), vbInformation, "AVISO"
Application.ScreenUpdating = True

End Sub




Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como contar datos con varias condiciones en una columna con CountIfs





En varias oportunidades cuando se programa macros es necesario contar dependiendo de criterios, este post muestra como contar datos de una columna, pero dependiendo de varias condiciones, para ello se apela a la WorksheetFunction CountIfs, anteriormente habíamos dicho que con WorkshetFunction se puede usar a traveés de código de VBA, funciones que vienen incorporadas en Excel, si deseas aprender más sobre WorksheetFunction visita el link.  

Existen otros post relacionados con como contar datos en Excel, si estás viendo este post es porque estás queriendo solucionar algo relacionado con la cuenta de datos, en ese caso invito a visitar post relacionados como son: como contar celdas vacías, como contar datos de celdas independientemente si son valores o no, como contar solo valores, contar celdas vacías con CountBlank.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  

El ejemplo denominado como contar datos dependiendo de varias condiciones, se puede descargar desde el link del final, el código se encuentra abierto y no contiene restricciones, se puede descargar en forma absolutamente GRATIS, recuerda que si puedes dona para poder mantener la WEB y seguir subiendo ejemplos de macros sin costo alguno, desde el link del final o costado derecho podrás hacerlo.

En este ejemplo se cuentan todas los datos de la columna A, pero dependiendo que el valor de la columna A fila correspondiente sea menor a 60.000 y que el valor de columna B y fila correspondiente sea menor a 40.000; solo en el caso que se cumplan las condiciones se procede a contar el valor correspondiente, es decir si no se dan los dos criterios en simultaneo el dato de la columna A, no es contado.

El siguiente código es el que permite contar dependiendo de criterios:

Cells(uf, "A") = Application.WorksheetFunction.CountIfs(Range("A2" & ":A" & uf - 1), ">60000", Range("B2" & ":B" & uf - 1), "<40000")

El código anterior asigna como valor de unas celda la cuenta de datos de la columna A, los datos son contados si se presentan los dos criterios en forma simultanea, se puede observar que la sintaxis es la siguiente:

Rango donde se debe evaluar el criterio, separado por coma y en forma inmediata se debe ingresar el criterio 1; luego se debe separar con coma y establecer el rango donde se debe evaluar el criterio 2, seguido a ello el criterio que se debe tener en cuenta; en este ejemplo los datos de la columna B deben ser menores a 4000 y los de la columna A mayores a 60.000, para que el dato de la columna A sea contado.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo WorksheetFunction sumar productobuscar en listbox mientras escribes en textboxCrear Cartas en Word desde Excelconectar Excel con Access y muchos ejemplos más.










Código que se inserta en un módulo




Sub CountIfs()
Application.ScreenUpdating = False
On Error Resume Next
Dim uf As String
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf, "A").ClearContents
Cells(uf, "A") = Application.WorksheetFunction.CountIfs(Range("A2" & ":A" & uf - 1), ">60000", Range("B2" & ":B" & uf - 1), "<40000")
MsgBox ("La cantidad de registros es: " & Cells(uf, "A")), vbInformation, "AVISO"
Application.ScreenUpdating = True
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends