Combobox depende otro combobox carga datos en texbox





El presente ejemplo trata de un combobox que depende de otro combobox y a su vez carga datos en textbox.

En llenar listbox dependiendo de otro listbox y combobox, llenar combobox y buscar datos, son entre otros post están relacionados con el presente ejemplo denominado Combobox depende de otro combobox y carga datos en textbox, a diferencia de combobox depende otro combobox y llena listbox, donde en vez de cargar los datos en textbox, se llena un listbox,  también existen otros donde se exponen macros sobre como recorrer las filas con macro y son: recorrer filas buscando y comparando datos, recorrer filas y contar celdas con datos, recorrer filas y copiar de la columna A a la B, además hay varios ejemplos que encontrarás aquí.

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.


  

Aquí te muestro una macro que utiliza un formulario en el se encuentra un combobox que depende de otro combobox, es decir en base a los datos que se seleccionen en el primer combobox se llenará el segundo combobox; una vez seleccionados los datos en el segundo combobox, la macro buscará en la base de datos y cargará todos los datos en los textbox insertados en el formulario.

Al cargar el formulario se carga en el primer combobox un listado de productos, los cuales los filtra para que salgan solo productos únicos y evitar duplicados; dependiendo del dato seleccionados en este combobox se llena el segundo combobox a su vez de los datos seleccionados en el segundo combobox se buscan los datos y rellenan los textbox 1 a 6 tal cual se dijo anteriormente.

Tiene un aditamento, que es un combobox que se encuentra al final que permite modificar la fecha, aquí se debe agregar el nuevo dato y presionar el botón registrar, la macro busca el dato respectivo y agrega la fecha de entrega del producto correspondiente.

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.




El ejemplo de macro que llena combobox dependiendo de otro combobox y a su vez controla los datos de varios textbox, se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Ejecutar Macro" y se ejecuta la macro realizando el llenado del primer combobox, luego del segundo combobox en base a los seleccionado en el primer combobox; y luego se cargará en los textbox los datos correspondientes de ítem seleccionado.


Código que se inserta en un módulo

Sub Botón1_Haga_clic_en()
UserForm2.Show
End Sub


Public dir
Private Sub ComboBox1_Change()
Dim fila As Integer
Dim uf As Integer
Dim d1, d2 As String
fila = 2
uf = Sheets("hoja2").Range("A" & Rows.Count).End(xlUp).Row
ComboBox2.Clear
While Sheets("hoja2").Cells(fila, 1) <> Empty
d1 = ComboBox1
d2 = Sheets("hoja2").Cells(fila, 1)
If d1 = d2 Then
ComboBox2.AddItem Sheets("hoja2").Cells(fila, 4)
End If
fila = fila + 1
Wend

End Sub
Private Sub ComboBox2_Change()
'Evito movimientos de la pantalla
Application.ScreenUpdating = False
Dim fila, a As Integer
Dim dato, var As String
'On Error Resume Next
'Borra datos del listbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty

a = 0
fila = 2
'Bucle mientras la fila no esté vacia
While Sheets("hoja2").Cells(fila, 4) <> Empty
      dato = ComboBox2
'Si el dato de la fila coincide con textbox carga los datos al listbox
  var = Sheets("hoja2").Cells(fila, 4)
   If var = dato Then
        dir = Sheets("hoja2").Cells(fila, 4).Address(False, False)
        'Copia los datos en textbox
   
        TextBox1 = Sheets("hoja2").Cells(fila, 1)
        TextBox2 = Sheets("hoja2").Cells(fila, 2)
        TextBox3 = Sheets("hoja2").Cells(fila, 3)
        TextBox4 = Sheets("hoja2").Cells(fila, 4)
        TextBox5 = Sheets("hoja2").Cells(fila, 5)
        TextBox6 = Sheets("hoja2").Cells(fila, 6)
   End If
 
'Aumento la fila para que pase a la siguiente
fila = fila + 1
Wend

'Devuelvo movimientos de la pantalla
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton2_Click()
If ComboBox3 = Empty Then
MsgBox ("Debe cargar fecha de salida"), vbCritical, "AVISO"
ComboBox3.SetFocus
Exit Sub
End If
Sheets("hoja2").Range(dir).Offset(0, 2) = ComboBox3
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
ComboBox1.SetFocus
MsgBox ("El registro se guardó con éxito"), vbInformation, "AVISO"
End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim sd As New Collection
Dim celda As Range
Dim dato
Dim r As String
Dim uf As Integer
Application.ScreenUpdating = False
On Error Resume Next
ComboBox1.Clear
Sheets("hoja2").Select
Range("A2").Select
uf = Range("A" & Rows.Count).End(xlUp).Row
r = "A2:A" & uf
For Each celda In Range(r)
sd.Add celda.Value, CStr(celda.Value)
Next celda
For Each dato In sd
ComboBox1.AddItem dato
Next dato
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      

Rango dinámico o variable como determinarlo





Antes de continuar 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.


  


Anteriormente se mostró una macro que determina el rango variable o dinámico, también como determinar la última fila con datos y como determinar la primer y última fila de una selección, se debe tener en claro que el último link refire sobre como determinar la dirección de la primer o última fila de una selección solamente; en este ejemplo te muesto, como determinar un rango variable o dinámico de otra forma, obteniendo el mismo resultado, debiéndose aplicar la que nos sirva más dependiendo de donde están ubicados los datos, estructura del libro de Excel o la forma que nos sea más fácil.

El código más abajo mostrado nos permite determinar cual es el rango cuando este es variable o dinámico, en el ejemplo en primero lugar se agrega en una variable el nombre de la hoja, luego se define cual es la primer fila, se obtiene la última fila mediante macros, la primero y última columna para luego extraer la letra que le corresponde a las respectivas columnas, esto se hace con los comandos para manipular texto Mid y InStr, los cuales también han sido explicado anteriomente; seguidamente se arma el rango concatenando el resultado de las variables y por último sale un msgbox mostrando el rango usado en la base de datos, para luego quedar seleccionado.

Al final hay un link del cual podrás descargar el ejemplo y adaptarlo a tus necesidades, el código se encuentra abierto y sin ningún tipo de restricción, te recomiendo descargar el ejemplo y ver su código y como funciona, podrás probar la macro las veces que quieras presionado el botón ejecutar macro, modifica el rango agregando o sacando datos y verás como la macro automáticamente determina el rango variable o dinámico.

En el vídeo que sigue podrá observar en forma más gráfica y detallada la explicación de la macro, suscribe 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 DetectaRangoDinamico()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim uc, wc, r1, b, pf, uf As String
'determines last row with data
b = ActiveSheet.Name
pf = 2
uf = Sheets(b).Range("A" & Rows.Count).End(xlUp).Row
uc = Sheets(b).Cells(1, Columns.Count).End(xlToLeft).Address
pc = Sheets(b).Cells(1, Columns.Count).End(xlToLeft).End(xlToLeft).Address
wc = Mid(uc, InStr(uc, "$") + 1, InStr(2, uc, "$") - 2)
wc1 = Mid(pc, InStr(pc, "$") + 1, InStr(2, pc, "$") - 2)
r1 = wc1 & pf & ":" & wc & uf

MsgBox ("El rango en la hoja " & b & " es " & r1), vbInformation, "AVISO"
Range(r1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = 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 un rango variable en forma automática





Siempre que se trabaja con base de datos es preciso saber o determinar un rango para realizar una determinada acción sobre los datos contenidos en el mismo, es relativamente fácil si el rango es siempre el mismo, pero que sucede si el rango varía constantemente porque se agregan o eliminan datos, es por ello que la macro del presente ejemplo permite determinar en forma automática el donde se encuentra la base de datos, es decir la macro determina un rango variable o dinámico.

Anteriormente se han presentado otros ejemplos que te pueden interesar y que están relacionados como son: como determinar la última fila con datos y como determinar la primer y última fila de una selección, se debe tener en claro que el último link hacer referencia a la determinación de la dirección de la última fila de la selección no del rango donde se encuentran los datos,

Antes de continuar 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.


  

Siguiendo con la explicación del ejemplo que se muestra, con está macro se determina en forma automática el rango usado, no interesa si se aumentan filas, se eliminan filas, se agregan datos en filas al principio, intermedio o final, la macro siempre recalculará el rango dinámico o variable en forma automática, esto es ideal en macros que precisan hacer un procedimiento sobre los datos de un rango variable o dinámico.

En el ejemplo, primero se agrega en una variable "b" el nombre de la hoja, esto no es necesario para determinar el rango variable, pero se agrega para que quede más completo el ejemplo; luego con el comando UsedRange se determina el rango usado, posteriormente sale un msgbox mostrando cual es el rango usado y por último se selecciona dicho rango. En rango variable o dinámico se expone otra forma de determinar el rango variable, es un poco más larga, pero se obtiene el mismo resultado, se debe aplicar una u otra forma dependiendo de los datos que tengamos o estructura del libro Excel.

Al final hay un link del cual podrás descargar el ejemplo y adaptarlo a tus necesidades, el código se encuentra abierto y sin ningún tipo de restricción, te recomiendo descargar el ejemplo y ver su codificación y funcionamiento; en forma más gráfica y detallada lo podrás ver en el vídeo siguiente.

Suscribe 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 DetectaRangoDin()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim b, mc As String
'determines last row with data
b = ActiveSheet.Name
mc = ActiveSheet.UsedRange.Address(False, False)
MsgBox ("El rango en la hoja " & b & " es " & mc), vbInformation, "AVISO"
Range(mc).Select
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      

Cuenta valores dependiendo varias condiciones







WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiendo incorporarse en una macro de VBA y usar estas funciones, esto se viene explicando en varios post anteriores; en el link encontrarás la explicación acerca del tema WorksheetFunction funciones de Excel en VBA y un listado de funciones de Excel en listado de todas las funciones que se pueden ejecutar desde una macro de VBA.

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 presente ejemplo de macro utiliza WorksheetFunction.CountIfs que permite contar datos en un rango dato dependiendo de varias condiciones, anteriormente se explicó como se puede contar datos si se tiene una sola condición, existen otros post relacionados con WorksheetFunctión como por ejemplo: como se utiliza la función VLookup o BuscarVen Funciones de Excel descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel, en como utilizar BuscarV se explica la utilización de dicha función en Excel, otras funciones que te pueden interesar son Vlookup o BuscarVSumIfs o SumIf; si lo que requieres es contar solamente valores mira este link, ahora si requieres contar celdas en blanco o vacías mira este otro link.


La función WorksheetFunction.CountIfs o Contar datos en un rango dado dependiendo de varias condiciones, su sintaxis es la siguiente:

La función WorksheetFunction.CountA sirve para contar la cantidad celdas con cualquier tipo de datos ya sea numérico, texto, error, etc.; la sintaxis es la siguiente:

WorksheetFunction.CountIfs(Arg1, Crit 1, Arg2, Crit2, Arg3, Crit3, Arg4, Crit4,........., Arg30, Crit30)

El significado de los parámetros son:

Arg1 a Arg30, dato obligatorio que indica el rango que se debe analizar o evaluar, recordemos que se pueden usar hasta treinta argumentos o rangos.

Crit2 a Crit30, también es un dato obligatorio y establece cual es el criterio o criterios en forma de número, expresión o texto, que determinan las celdas que se deben contar, los criterios se pueden expresar como 12, "12", "<12" o "palmeras". En los criterios se pueden usar caracteres comodín (?) y (*); donde el "?" corresponde a un solo caracter y el "*" a una cadena de caracteres, si lo que se desea buscar es (?) o (*) se debe escribir un tilde (~) antes del caracter.

En este post  WorksheetFunction.CountIfs muestro como se puede agregar a una macro una función que trae Excel incorporada, permitiendo contar celdas que coincidan con varios criterios a la vez, ello se realiza en un rango que previamente se ha establecido y su vez, en este ejemplo, coloca dicho resultado mediante macro en una celda; primero se determinar cual es la última fila con datos mediante la variable "uf", esto es a los fines de armar el rango de la matriz donde se buscarán y contarán los valores; posteriormente se aplica la función CountIfs o ontar celdas que coincidan con varios criterios a la vez.

Con el código siguiente coloca en la celda formada por la última fila con datos y columna B, el resultado de la función, que es la cantidad de celdas que coinciden con los criterio para poder ser contados, en este caso el rango se arma desde la celda A2 hasta la columna B y última fila con datos :

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

Como se puede observar al final de la macro, por último aparece un mensaje a través de un msgbox que muestra la cantidad de celdas con datos contadas, recuerda que como siempre la descarga del ejemplo es GRATUITA y se realiza desde el link que se encuentra en el final del post.

Finalizando, el ejemplo de macro que utiliza WorksheetFunction CountIfs o Cuenta la cantidad de celdas que coinciden con varios criterios, se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Macro" y se ejecuta la macro que cuenta las celdas especificadas, según los criterios dados; para probarla se pueden cambiar los datos y el resultado se recalculará.

En el vídeo a continuación podrás observar una explicación más detallada y gráfica, solicito suscribas al canal de You Tube para seguir recibiendo GRATIS ejemplos de macros en tu correo, útiles para automatizar Excel y disminuir tu trabajo; podrás suscribir al blog desde la parte superior derecha de ésta página, sólo debes ingresar tu casilla de correo.

Suscribe 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 CuentaCeldasVariasCondiciones()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim fila As Integer
fila = 2
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf, "B") = Application.WorksheetFunction.CountIfs(Range("A2" & ":A" & uf - 1), "> 50", Range("B2" & ":B" & uf - 1), "> 100")
Range("B25").NumberFormat = "#,##0.00"
MsgBox ("Hay " & Cells(25, "B") & " valores en el rango que cumplen las condiciones"), vbInformation, "AVISO"
DisplayAlerts = True
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      

Cuenta valores dependiendo una condición







Es posible que alguna vez hayas querido contar valores dependiendo de una condición o criterio, es decir si es mayor  o menor que cierto valor es mayor o igual, etc., en las siguientes líneas pretendo mostrarte como usar esta función de Excel aplicada a una macro de VBA.

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.




  

WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiendo incorporarse en una macro de VBA y usar estas funciones, esto se viene explicando en varios post anteriores; en el link encontrarás la explicación acerca del tema WorksheetFunction funciones de Excel en VBA y un listado de funciones de Excel en listado de todas las funciones que se pueden ejecutar desde una macro de VBA.


El presente ejemplo de macro utiliza WorksheetFunction.CountIf que permite contar datos dependiendo de una condición, existen otros post relacionados con WorksheetFunctión como por ejemplo: como se utiliza la función VLookup o BuscarVen Funciones de Excel descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel, en como utilizar BuscarV se explica la utilización de dicha función en Excel, otras funciones que te pueden interesar son Vlookup o BuscarVSumIfs o SumIf; si lo que requieres es contar solamente valores mira este link, ahora si requieres contar celdas en blanco o vacías mira este otro link.


Siguiendo con el tema tratado, la función WorksheetFunction.CountIf o Cuenta dependiendo de criterios, su sintaxis es la siguiente:

La función WorksheetFunction.CountIf se utiliza para contar la cantidad de valores que cumplen una condición determinada; la sintaxis es la siguiente:

WorksheetFunction.CountIf(Arg1, Arg2)

El significado de los parámetros son:

Arg1: es un dato obligatorio, siendo el rango de celdas que se deben evaluar según los criterios especificados.

Arg2: es un dato también obligatorio, se refiere a los criterios en forma de número, expresión o texto, que determinan las celdas que se deben contar, los criterios se pueden expresar como 12, "12", "<12" o "palmeras". En los criterios se pueden usar caracteres comodín (?) y (*); donde el "?" corresponde a un solo caracter y el "*" a una cadena de caracteres, si lo que se desea buscar es (?) o (*) se debe escribir un tilde (~) antes del caracter.


En este post denominado  WorksheetFunction.CountIf muestro como se incorpora en una macro la función de Excel explicada aquí, permitiendo contar celdas que concuerdan con un criterio dado, ello se realiza en un rango que previamente se ha establecido; en este ejemplo se coloca dicho resultado mediante macro en una celda; primero se determinar cual es la última fila con datos mediante la variable "uf", esto es a los fines de armar el rango de la matriz donde se buscarán y contarán los valores; posteriormente se aplica la función CountIf o contar valores dependiendo de criterios.

El siguiente código es el que permite contar los valores que cumplen un criterio especificado previamente y a su vez escribir el resultado en la celda que es variable y esta dada por la última fila con datos y la columna B.

Cells(uf, "B") = Application.WorksheetFunction.CountIf(Range("B2" & ":B" & uf - 1), "> 50")

El rango se arma desde la celda B2 hasta la columna B y última fila con datos, siendo el criterio a tener en cuenta, que el valor a contar sea > 50.

Como se puede observar al final de la macro, por último aparece un mensaje a través de un msgbox que muestra la cantidad de valores contados, podrás descargar el ejemplo en forma GRATUITA desde el link que se encuentra en el final del post.

Finalizando, este ejemplo de macro que utiliza WorksheetFunction CountIf o Cuenta mediante criterios o condición, se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Macro" y se ejecuta la macro que cuenta las celdas dependiendo un criterio, en el caso del ejemplo; el criterio para que un valore sea contado es que sea mayor que cincuenta (> 50); para probar la macro se cambian los datos y el resultado se volverá a calcular.

En el vídeo a continuación podrás observar una explicación más detallada y gráfica, solicito suscribas al canal de You Tube para seguir recibiendo GRATIS ejemplos de macros en tu correo, útiles para automatizar Excel y disminuir tu trabajo; podrás suscribir al blog desde la parte superior derecha de ésta página, sólo debes ingresar tu casilla de correo.

Suscribe 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 CuentaCeldasCondicion()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim fila As Integer
fila = 2
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf, "B") = Application.WorksheetFunction.CountIf(Range("B2" & ":B" & uf - 1), "> 50")
Range("B25").NumberFormat = "#,##0.00"
MsgBox ("Hay " & Cells(25, "B") & " valores en el rango"), vbInformation, "AVISO"
DisplayAlerts = True
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      

Contar datos en un rango función CountA







Antes de empezar 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.




  

WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiendo incorporarse en una macro de VBA y usar estas funciones, esto se viene explicando en varios post anteriores; en el link encontrarás la explicación acerca del tema WorksheetFunction funciones de Excel en VBA y un listado de funciones de Excel en listado de todas las funciones que se pueden ejecutar desde una macro de VBA.

El presente ejemplo de macro utiliza WorksheetFunction.CountA que permite contar cualquier tipo de datos en rango determinado, existen otros post relacionados con WorksheetFunctión como por ejemplo: como se utiliza la función VLookup o BuscarVen Funciones de Excel descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel, en como utilizar BuscarV se explica la utilización de dicha función en Excel, otras funciones que te pueden interesar son Vlookup o BuscarVSumIfs o SumIf; si lo que requieres es contar solamente valores mira este link, ahora si requieres contar celdas en blanco o vacías mira este otro link.



Siguiendo con el tema tratado, la función WorksheetFunction.CountA o Cuenta de distintos tipos de datos en un determinado rango, su sintaxis es la siguiente:

La función WorksheetFunction.CountA sirve para contar la cantidad celdas con cualquier tipo de datos ya sea numérico, texto, error, etc.; la sintaxis es la siguiente:

WorksheetFunction.CountA(Arg1, Arg2, Arg3, Arg4.... Arg30)

El significado de los parámetros son:

Arg1 a Arg30, es un dato obligatorio, representan los rangos donde se requiere contar, las celdas pueden contener distintos tipos de datos, se contarán todas celdas que contengan datos sin interesar de que tipo son.

En este post  WorksheetFunction.CountA muestro como se incorpora en una macro una función que trae Excel incorporada, permitiendo contar celdas que contienen distintos tipos de datos, ello se realiza en un rango que previamente se ha establecido y su vez, en este ejemplo, coloca dicho resultado mediante macro en una celda; primero se determinar cual es la última fila con datos mediante la variable "uf", esto es a los fines de armar el rango de la matriz donde se buscarán y contarán los valores; posteriormente se aplica la función CountA o contar celdas con cualquier tipo de datos.

Con el código siguiente coloca en la celda E25 el resultado de la función, que es la cantidad de celdas que contienen datos de cualquier tipo en el rango determinado, en este caso el rango se arma desde la celda A2 hasta la columna B y última fila con datos :

Cells(25, "E") = Application.WorksheetFunction.CountA(Range("A2" & ":B" & uf))

Como se puede observar al final de la macro, por último aparece un mensaje a través de un msgbox que muestra la cantidad de celdas con datos contadas, recuerda que como siempre la descarga del ejemplo es GRATUITA y se realiza desde el link que se encuentra en el final del post.

Finalizando, el ejemplo de macro que utiliza WorksheetFunction CountA o Cuenta de celdas con cualquier tipo de datos, se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Macro" y se ejecuta la macro que cuenta las celdas con cualquier tipo de datos; para probarla se pueden cambiar los datos y el resultado se recalculará.

En el vídeo a continuación podrás observar una explicación más detallada y gráfica, solicito suscribas al canal de You Tube para seguir recibiendo GRATIS ejemplos de macros en tu correo, útiles para automatizar Excel y disminuir tu trabajo; podrás suscribir al blog desde la parte superior derecha de ésta página, sólo debes ingresar tu casilla de correo.

Suscribe 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 CuentaCeldasCualquierDato()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim fila As Integer
fila = 2
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(25, "E") = Application.WorksheetFunction.CountA(Range("A2" & ":B" & uf))
Range("B25").NumberFormat = "#,##0.00"
MsgBox ("Hay " & Cells(25, "E") & " valores en el rango"), vbInformation, "AVISO"
DisplayAlerts = True
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 valores con macro función Count







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.


  

WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiendo incorporarse en una macro de VBA y usar estas funciones, esto se viene explicando en varios post anteriores; en el link encontrarás la explicación acerca del tema WorksheetFunction funciones de Excel en VBA y un listado de funciones de Excel en listado de todas las funciones que se pueden ejecutar desde una macro de VBA.

El presente ejemplo de macro utiliza WorksheetFunction.Count que permite contar valores en un rango determinado, existen otros post relacionados con WorksheetFunctión como por ejemplo: como se utiliza la función VLookup o BuscarVen Funciones de Excel descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel, en como utilizar BuscarV se explica la utilización de dicha función en Excel, otras funciones que te pueden interesar son Vlookup o BuscarVSumIfs o SumIf.

Siguiendo con el tema tratado, la función WorksheetFunction.Count o Cuenta valores en un determinado rango, su sintaxis es la siguiente:

La función WorksheetFunction.Count o cuenta de valores númericos sirve para obtener la cantidad de valores que existen en las celdas de un rango determinado; la sintaxis es la siguiente:

WorksheetFunction.Count(Arg1, Arg2, Arg3, Arg4.... Arg30)

El significado de los parámetros son:

Arg1 a Arg30, es un dato obligatorio, representan los rangos donde se requiere contar, las celdas pueden contener distintos tipos de datos, pero solo se contarán las celdas que contienen valores númericos.

En este post  WorksheetFunction.Count muestro como se incorpora en una macro una función que trae Excel incorporada, permitiendo contar solamente las celdas que contienen valores numéricos, pasando por alto las celdas que contengan otro tipo de datos, ello se realiza en un rango que previamente se ha establecido y su vez, en este ejemplo, coloca dicho resultado mediante macro en una celda; primero se determinar cual es la última fila con datos mediante la variable "uf", esto es a los fines de armar el rango de la matriz donde se buscarán y contarán los valores; posteriormente se aplica la función Count o contar celdas con valores.

Con el código siguiente coloca en la celda E25 el resultado de la función, que es la cantidad de celdas que contienen valores numéricos que existe en el rango dado, en este caso el rango se determina desde la celda A2 hasta la columna B y última fila con datos :

Cells(25, "E") = Application.WorksheetFunction.Count(Range("A2" & ":B" & uf))

Como se puede observar al final de la macro, por último aparece un mensaje a través de un msgbox que muestra la cantidad de valores contados, recuerda que como siempre la descarga del ejemplo es GRATUITA y se realiza desde el link que se encuentra en el final del post.

Finalizando, el ejemplo de macro que utiliza WorksheetFunction Count o Cuenta de celdas con valores numéricos, acá encontrarás una función que cuenta las celdas vacías o en blanco solamente y aquí una función que permite contar cualquier tipo de datos; se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Macro" y se ejecuta la macro que cuenta las celdas con datos numéricos; para probarla se pueden cambiar los datos y el resultado se recalculará.

En el vídeo encontrarás una explicación más gráfica y detallada del ejemplo presentado, sugiero que suscribas al canal de You Tube para recibir en tu correo los vídeos que se publiquen, también suscribe al blog desde la parte superior derecha de la página agregando su dirección de correo electrónico.

Suscribe 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 CuentaCeldas()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim fila As Integer
fila = 2
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(25, "E") = Application.WorksheetFunction.Count(Range("A2" & ":B" & uf))
Range("B25").NumberFormat = "#,##0.00"
MsgBox ("Hay " & Cells(25, "E") & " valores en el rango"), vbInformation, "AVISO"
DisplayAlerts = True
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