Como utilizar WorksheetFunction Sumar Producto







Siguiendo con el tema de la funciones de Excel que se pueden usar en macros VBA y que en WorksheetFunction funciones de Excel en VBA se explicó que WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiendo incorporarse en una macro y usar estas funciones; también se incorporó un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA que seguramente también les será de utilidad, en dicho listado se encuentra un link con la funciones para que sea más placentero navegar e ingresar a examinar la función que interesa revisar.

En esta ocasión muestro una macro que utiliza WorksheetFunction.SumProduct que permite sumar un producto o multiplicación, es decir multiplica dos valores y a a vez los va sumando, se ha escrito en un post anterior sobre una de las funciones más usadas en la búsqueda de datos, detallando 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.

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.



  

La función WorksheetFunction.SumProduct o Suma de Producto sirve para obtener la suma de una multiplicación o producto de dos valores en un rango determinado; la sintaxis es la siguiente:

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

El significado de los parámetros son:

Arg1 a Arg30, es un dato obligatorio, representan las matrices o  los valores que se desean multiplicar, la celdas que tengan valores no numéricos son tratadas como si tuvieran un valor cero.

En este post denominado WorksheetFunction.SumProduct muestro como se puede multiplicar dos  o más valores y a la vez y sumando dicho resultado mediante macro; el ejemplo está hecho para que sea lo más automático posible es por ello que 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 a multiplicar y luego sumar; posteriormente se aplica la función SumProduct o Suma Producto; el rango a multiplicar y luego sumar se determina en forma automática en este caso se multiplican los datos de la columa A por la Columna B y el resultado es colocado en la celda B25 del ejemplo.

Con el código que a continuación se muestra asignamos a la celda B25 el resultado de la función, la misma es el resultado de sumar la multiplicación del rango A2 y última fila con datos por B2 y última fila con datos:

Cells(25, "B") = Application.WorksheetFunction.SumProduct(Range("A2" & ":A" & uf), Range("B2" & ":B" & uf))

En el ejemplo también se le otorga un formato de número con dos decimales al resultado obtenido a través de este código Range("B25").NumberFormat = "#,##0.00", como se puede observar al final de la macro, por último aparece un mensaje a través de un msgbox que avisa que la multiplicación se realizó con éxito, 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 SumProduct o Suma de Producto o Multiplicació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 calculando la suma del producto de las filas correspondientes; para probarla se pueden cambiar los datos y el resultado se modificará.

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 SumaProducto()
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, "B") = Application.WorksheetFunction.SumProduct(Range("A2" & ":A" & uf), Range("B2" & ":B" & uf))
Range("B25").NumberFormat = "#,##0.00"
MsgBox ("La suma de la multiplicación se realizó con éxito"), 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 crear una Macro de Excel





Como crear una macro, como crear una macro de Excel, como aprender a crear una macro de Excel con VBA, tutorial gratis sobre como crear una macro, forma de crear una macro de Excel, curso de creación de macros, como crear una macro desde el inicio, Manipular código de VBA, como programar una macro de Excel; como modificar el código de una macroprogramar Excel; todas estas preguntas tienen su respuesta en este post.



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.


  

No se pretende hacer un curso avanzado ni una gran exposición teórica sobre macros de VBA, sino enseñar a crear una macro de Excel desde cero, pero desde un punto de vista totalmente práctico, es muy claro que es necesario algo teoría, pero básicamente voy a dar un enfoque meramente práctico a lo aquí expuesto.


Básicamente existen dos caminos para crear una macro de Excel, el más fácil y por ende más limitado, es utilizar la grabadora de macros que trae incorporada Excel, mediante esta herramienta se está condicionado a los movimiento o acciones que podamos hacer con el mause o teclado; es decir si seleccionamos un rango ese rango se podrá seleccionar nuevamente ya que se grabará un código que así lo determina, pero si quisiéramos hacer algo más complejo con las macros la grabadora de macros queda obsoleta, para ello tenemos que recurrir a la programación en VBA, lo cual es más difícil, ya que requiere un cierto conocimiento sobre macros o programación en VBA para poder realizar o modificar alguna macro ya hecha como por ejemplo las macros de este listado.


Comencemos con la grabadora de macro, para poder grabar una macro con esta herramienta provista por Excel se necesita tener habilitado el menu programador, en caso que no este habilitado se debe ir a la pestaña archivos, luego a opciones y por último personalizar cinta de opciones, ahí se debe tildar donde dice programador en las opciones de la derecha, en la figura siguiente se muestra en forma gráfica los pasos expuestos para que aparezca el menu programador.




Una vez habilitado el menu programandor, al presionarlo aparece en la cinta de opciones un pequeño ícono que dice "grabar macro" (ver la imagen de abajo), si hacemos click en dicho ícono se abre un cuadro de diálogo para que asignemos nombre a la macro, por defecto siempre sale escrito "macro1" si ya grabamos una macro sale "macro2" y así sucesivamente; una vez hecho esto la grabadora queda en funcionamiento y se graban o mejor dicho se codifica todo lo que seleccionemos, escribamos y demás comandos que ejecutemos con el mause y teclado; para detener la grabación se debe presionar el mismo botón que ahora dice "Detener Grabación".


Antes de continuar, recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas 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.

Bien ahora te voy a mostrar el código que genera la grabadora de macros, vamos a realizar algo sencillo como es escribir un nombre, cambiar la fuente y su tamaño, poner negrita seleccionar la celda H100, hacer scroll con el mause para ver dicha celda y seleccionar la celda A1, el código de VBA que genera la grabadora de macros es el siguiente:

Sub Macro1()
' Macro1 Macro

    Range("A2").Select
    ActiveCell.FormulaR1C1 = "Dayra Col"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "Tomy Lee"
    Range("A2:A3").Select
    With Selection.Font
        .Name = "Calibri"
        .Size = 20
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    Selection.Font.Bold = True
    ActiveWindow.SmallScroll Down:=78
    Range("H100").Select
    ActiveWindow.SmallScroll Down:=-111
    Range("A1").Select
End Sub

Ahora explico paso por paso que hace cada parte del código, debes tener en cuenta lo que se expuso más arriba de lo que se iba a realizar para que la grabadora genere el código.

Toda macro empieza con "Sub nombremacro()" y termina con "End Sub", en el código anterior todo texto que tenga apostrofe ( ' ) es un comentario solamente y no incide en el código; nuestra macro empieza con

Sub Macro1()

Debes notar que en el nombre de la macro está escrito el nombre que le dimos en el cuadro de diálogo que salió al presionar grabar macro; la macro  termina con

End Sub

Esta parte del código  nos dice que seleccionemos la celda A2 luego escribamos en ella "Dayra Col"; luego seleccionemos la celda A3 y escribamos "Tomy Lee"; posteriormente seleccionamos el rango A2:A3.

    Range("A2").Select
    ActiveCell.FormulaR1C1 = "Dayra Col"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "Tomy Lee"
    Range("A2:A3").Select

Si se quisiera cambiar el rango seleccionado, se podría manipular el código y cambiar el rango donde se escribe por ejemplo el código establece que se debe seleccionar el rango A2, pero si quisiéramos que "Dayra Col" se escriba en el rango E15, deberíamos usar cambiar el siguiente código:

 Range("A2").Select
 ActiveCell.FormulaR1C1 = "Dayra Col"

Por este otro código:

 Range("E15")= "Dayra Col"


Luego de la selección se elige la fuente denominada"Calibri" y le da un tamaño 20, posteriormente pone en negrita el texto del rango seleccionado, esto es lo que está ordenando entre otras cosas hacer en el siguiente código.

With Selection.Font
        .Name = "Calibri"
        .Size = 20
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
Selection.Font.Bold = True


Para finalizar se da un scroll de 78 y seleccionamos la celda H100, el scroll se hace con la rueda del mause, permite para bajar las celdas y poder visualizar donde esta la celda H100, por último se selecciona la celda A1, dando un scroll de -111 es decir llevamos la página hacia arriba para poder ver la celda A1; esto es lo que ordena hacer el código que está más abajo.

    ActiveWindow.SmallScroll Down:=78
    Range("H100").Select
    ActiveWindow.SmallScroll Down:=-111
    Range("A1").Select

Para terminar con el tema de la grabadora de macros y pasar a ver como se puede escribir o manipular el código de una macro, cabe aclarar que la grabadora genera aveces un código demasiado largo que puede ser simplificado si es escrito en vez de usar el código que genera la grabadora.





Seguidamente vamos a realizar lo mismo que se hizo con la grabadora es decir escribir en la celda A2 "Dayra Col" en la celda A3 "Tomy Lee", darle un tamaño de 20 y fuente "Calibri", poner el texto en negrita; posteriormente seleccionar la celda H100 y luego A1.

Para escribir el código debemos presionar Alt+F11 con ello se muestra el editor de VBA, tal cual se muestra en la imagen de abajo; una vez cargado el editor de VBA debemos insertar un módulo, para ello vamos al menu insertar, se despliega un submenu, desde ahí debemos insertar módulo, luego en la parte derecha comenzamos a escribir el código que sigue:



Sub Macro2()
Range("A2") = "Dayra Col"
Range("A3") = "Tomy Lee"
Range("A2:A3").Font.Size = 20
Range("A2:A3").Font.Name = "Calibri"
Range("A2:A3").Font.Bold = True
Range("H100").Select
Range("A1").Select
End Sub


Como podemos observar el código escrito directamente en el editor de VBA hace lo mismo que el realizado con la grabadora de macros, sin embargo la codificación de la macro es mucho más simple, desde aquí puedes descargar el ejemplo y ver como funciona.


Para terminar vamos a mostrar un código un poquito más complejo, es bastante útil ya que se presenta un formulario para introducir datos en la celda, primero se va a mostrar el código completo y luego se va a desglosar para explicar paso a paso que realiza cada parte del código o macro


Código que se inserta en un módulo

Sub CargaFormulario()
    Load UserForm1
    UserForm1.Show
End Sub


Código que se inserta en un formulario



Private Sub CommandButton1_Click()
'Inserta fila
Selection.EntireRow.Insert
'LimpiaLimpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
'Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub TextBox1_Change()
Range("a2").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub

Private Sub TextBox2_Change()
Range("b2").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub

Private Sub TextBox3_Change()
Range("c2").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub
Private Sub TextBox4_Change()
Range("d2").Select
ActiveCell.FormulaR1C1 = TextBox4
End Sub
Private Sub TextBox5_Change()
Range("e2").Select
ActiveCell.FormulaR1C1 = TextBox5
End Sub


Bien ahora explicaré que realiza cada parte del código presentado, este código se debe insertar en un módulo, lo que hace es cargar el formulario1 o Userform1 y mostrarlo, para ello en el ejemplo encontrarás un botón que tiene asignada esta macro y que permite mostrar el formulario al presionar el mismo.

Sub CargaFormulario()
    Load UserForm1
    UserForm1.Show
End Sub

La siguiente codificación va en un formulario, para insertar un formulario se debe seguir los mismos pasos para insertar un módulo, pero en vez de módulo elegir userform.

El código que se muestra a continuación pertenece al botón insertar del formulario, lo que hace es insertar una fila entera en el rango seleccionado actualmente; luego limpia los textbox del 1 al 5 y deja listo para ingresar el nuevo registro, por último hace que el cursor se posicione en el textbox1.


Private Sub CommandButton1_Click()
'Inserta fila
Selection.EntireRow.Insert
'LimpiaLimpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
'Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub


Código que se asigna al botón cancelar, al presionarlo hace que se oculte o cierre el formulario.

Private Sub CommandButton2_Click()
Unload Me
End Sub


Código que maneja el textbox1, lo que realiza lo hace justo en el evento change o cuando cambia se modifica el textbox1, en este caso selecciona la celda A2 y luego hace que el valor del textbox1 se copie en la celda A2.

Private Sub TextBox1_Change()
Range("a2").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub


Esta codificación se inserta en el textbox2, selecciona la celda B2 y luego hace que el valor del textbox2 se copie en la celda B2.

Private Sub TextBox2_Change()
Range("b2").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub


Esta código se inserta en el textbox3, selecciona la celda C2 y luego hace que el valor del textbox3 se copie en la celda C2.

Private Sub TextBox3_Change()
Range("c2").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub


Esta código se inserta en el textbox4, selecciona la celda D2 y luego hace que el valor del textbox4 se copie en la celda D2.

Private Sub TextBox4_Change()
Range("d2").Select
ActiveCell.FormulaR1C1 = TextBox4
End Sub


Esta código se inserta en el textbox5, selecciona la celda E2 y luego hace que el valor del textbox5 se copie en la celda E2.

Private Sub TextBox5_Change()
Range("e2").Select
ActiveCell.FormulaR1C1 = TextBox5
End Sub



Te invito, desde el link del final, a descargar el archivo de ejemplo de esta manera podrás ver su funcionamiento en forma más detallada. Resumiendo, el código de VBA o Macro de Excel presentado al último muestra un formulario desde el cual se pueden ingresar datos a una base de datos de Excel, desde ya que está a modo de ejemplo y admite muchas mejoras, pero es un buen punto de partida si estás por programar algún formulario que permita manipular e ingresar datos, en el sitio encontrarás muchos ejemplos que te ayudarán a programar tu macro, en los links siguientes hay otros post de utilidad y ejemplos que te servirán mucho.


En el vídeo encontrarás una explicación más gráfica y detallando paso a paso su funcionamiento, te sugiero que lo veas, de esa manera podrás modificar la macro a tu necesidad, por favor suscribe el canal y blog, recibirás en una notificación en tu correo cada vez que se publique un post con ejemplos de macro, que puedes descargar gratuitamente.

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.






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      

Proper como utilizar la WorksheetFunction poner Primera Letra en Mayúscula





En WorksheetFunction funciones de Excel en VBA se enseño que WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiéndose agregar en una macro y usar estas funciones, también se incorporó un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA que puede ser de utilidad, en dicho listado se encuentra un link con la funciones para que sea más placentero navegar e ingresar a examinar la función que interesa revisar.

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.




  


Entre las funciones más usadas de excel se encuentra BuscarV o VLokuo en inglés anteriormente se explicó 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 seguramente te ayudarán son: Vlookup o BuscarVSumIfsSumIf o Product, en la presente entrega muestro como utilizar la función Proper, para poner en mayúscula la primer letra de cada palabra.

La función WorksheetFunction Proper sirve para poner en mayúscula la primer letra de cada palabra, cadena de texto o string como así también cualquier cadena de texto que se encuentre detrás de un caracter distinto a una letra, convirtiendo el resto de los caracteres en minúscula; la sintaxis es la siguiente:

WorksheetFunction.Product(Arg1)

El significado de los parámetros son:

Arg1, es un dato obligatorio, expresa el rango o celda donde se encuentra el texto que se desea convertir a tipo título, puede provenir de texto entre comillas, ser el resultado de una fórmula o la referencia a una celda que contiene texto.

El ejemplo macro de VBA enseña como multiplicar con una macro los valores ingresados en un rango de datos; lo primero que se realiza es determinar cual es la última fila con datos mediante lavariable "uf", posteriormente se realiza un bucle que recorra las celdas hasta la última con datos; luego se aplica la función Product o Producto; el rango se determina en forma automática y se aplica la función para obtener la multiplicación de los valores de la columna A y columna B de sus correspondientes filas.

El ejemplo de macro que utiliza WorksheetFunction Proper, que se puede descargar desde el link del final, permite convertir en texto en tipo título, es decir pone la primer letra de la palabra en mayúscula y el resto en minúscula, hace lo mismo con todas las palabras de la cadena, detectando donde se encuentra el espacio y poniendo en mayúscula la letra de la palabra que sigue.

Descargado el ejemplo encontrarás un botón que dice "Macro", al presionarlo se ejecuta la macro que pone mayúscula la primer letra de la cadena de texto o string; en el ejemplo lo que se hace es poner en la variable "a" el texto de la columna A y en la variable "b" el texto de la columna B, posteriormente en la columna C se concatena los dos textos, previo se hizo un bucle que recorra todas las filas hasta la última con datos, saliendo un msgbox cuando finalice la macro avisando sobre la operación realizada.

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 PoneMayuscula()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf, a, b As String
Dim fila As Integer
fila = 2
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
While Cells(fila, "A") <> Empty
a = Application.WorksheetFunction.Proper(Cells(fila, "A"))
b = Application.WorksheetFunction.Proper(Cells(fila, "B"))
Cells(fila, "C") = a & " " & b
fila = fila + 1
Wend
MsgBox ("Se puso Mayúscula en la primer letra y contatenó con éxito"), 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      

Utilizar WorksheetFunction Product o Multiplicación





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.


  

En WorksheetFunction funciones de Excel en VBA se enseño que WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiéndose agregar en una macro y usar estas funciones, también se incorporó un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA que puede ser de utilidad, en dicho listado se encuentra un link con la funciones para que sea más placentero navegar e ingresar a examinar la función que interesa revisar.

Se ha escrito en un post anterior sobre una de las funciones más usadas en la búsqueda de datos, detallando 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, en la presente entrega muestro como utilizar la función Product, para obtener el producto o multiplicación de valores en un rango dado.

La función WorksheetFunction Product o Producto sirve para obtener la multiplicación o producto de dos valores en un rango determinado; la sintaxis es la siguiente:

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

El significado de los parámetros son:

Arg1 a Arg30, es un dato obligatorio, representan los valores que se desean multiplicar.

El ejemplo macro de VBA enseña como multiplicar con una macro los valores ingresados en un rango de datos; lo primero que se realiza es determinar cual es la última fila con datos mediante lavariable "uf", posteriormente se realiza un bucle que recorra las celdas hasta la última con datos; luego se aplica la función Product o Producto; el rango se determina en forma automática y se aplica la función para obtener la multiplicación de los valores de la columna A y columna B de sus correspondientes filas.

El ejemplo se descarga en forma GRATUITA desde el link del final,  éste recorre fila por fila realizando la multiplicación o productos de los valores de la columna  A y B, colocando el resultado en la fila respectiva de la Columna C, por último sale o crea un msgbox señalando si se realizó o no con éxito la operación requerida.

Si analizamos el código en detalle veremos que Cells(fila, "A") es el Arg1 y Cells(fila, "B") el Arg2; indican que valores se deben multiplicar, lo mismo se hace con el resto de las filas.

El ejemplo de macro que utiliza WorksheetFunction Product o Producto 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 calculando el producto de las filas correspondientes; para probarla se pueden cambiar los datos y el resultado se modificará

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 Producto()
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
While Cells(fila, "A") <> Empty
Cells(fila, "C") = Application.WorksheetFunction.Product(Cells(fila, "A"), Cells(fila, "B"))
fila = fila + 1
Wend
Range("C:C").NumberFormat = "#,##0.00"
MsgBox ("La suma de la multiplicación se realizó con éxito"), 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      

Macro lista datos sin duplicados





Los siguientes post tienen relación y te pueden interesar también: llenar listbox dependiendo de otro listbox y combobox, llenar combobox y buscar datosCombobox depende de otro combobox y llena listbox, Combobox sin duplicados; están relacionados con el presente ejemplo denominado lista de datos sin duplicados es decir solo se agregan datos únicos no duplicados; existen otras entradas donde se muestran macros sobre como recorrer las filas ya que es necesario para ir filtrando los datos duplicados, estos 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.


  

Al ejemplo se accede desde el link del final en forma absolutamente GRATUITA, se podrá descargar y ver su funcionamiento, si se juntan con otras macros publicadas en esta web puedes realmente hacer un sistema basado en Excel; el ejemplo permite recorrer las filas de una base de datos y realizar un filtrado de datos, listando en la hoja3 todos los datos no duplicados que encuentra la macro.
Para ejecutar la macro, se debe presionar el botón que dice "DATOS NO DUPLICADOS", la macro filtra la base da datos agregando los datos en la hoja tres a partir de la fila dos.

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 SD()
Dim SD As New Collection
Dim celda As Range
Dim dato
Dim r As String
Dim uf, conta, fila As Integer
Application.ScreenUpdating = False
On Error Resume Next
conta = 0
fila = 2
Sheets("hoja3").Cells.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
Sheets("Hoja3").Cells(fila, 1) = dato
conta = conta + 1
fila = fila + 1
Next dato
MsgBox ("Se encontraron " & conta & " registros no duplicados, ver el combobox")
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      

Combobox sin duplicados





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.




  

En llenar listbox dependiendo de otro listbox y combobox, llenar combobox y buscar datos y la entrega anterior Combobox depende de otro combobox y llena listbox están relacionados con el presente ejemplo denominado Combobox con lista validada sin duplicados o combobox que lista datos únicos o no repetidos; existen otras entradas donde se muestran  macros sobre como recorrer las filas ya que es necesario para ir filtrando los datos duplicados, estos 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í.

Este ejemplo es algo realmente importante cuando se trabaja con datos, ya que el ejemplo de macro de VBA presentado permite listar una  base de datos sin duplicados o dicho de otra forma solamente lista datos únicos sin repetir datos a pesar que la base de datos contenga datos duplicados triplicados o que se presenten varias veces en la base de datos, lo cual no interesa ya que la macro filtra y presenta datos únicos.

Específicamente el ejemplo lo que se hace es filtrar datos únicos al momento de ejecutar la macro que inicia el formulario, presentando en un combobox los datos únicos sin tener en cuenta los duplicados, el botón contar duplicados hace salir un msgbox que muestra la cantidad de datos que se han filtrado; si requieres saber más sobre msgbox haz click acá.

A continuación se presenta primero la codificación que se inserta en un módulo, la cual permite hacer que aparezca el userform; posteriormente se encuentra la programación que se coloca en el evento Initialize del userform; como se mencionó anteriormente dicha macro lista solamente datos únicos sin duplicados, desde el link que se encuentra al final del post se puede descargar el ejemplo en forma absolutamente GRATIS.

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 Botón1_Haga_clic_en()
UserForm2.Show
End Sub



Código que se inserta en un userform

Public conta As Integer
Private Sub CommandButton2_Click()
MsgBox ("Se encontraron " & conta & " registros no duplicados, ver el combobox")
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
conta = 0
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
conta = conta + 1
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      

Combobox depende de otro combobox y llena listbox





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 llena 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í.

El ejemplo que puede descargarse GRATUITAMENTE desde el final de la página tiene por objeto llenar un combobox dependiendo de otro combobox y a su vez de este combobox depende un listbox. 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 llena un listbox.

Agregando la fecha de entrega del producto, y presionado el botón registrar, la macro busca el dato respectivo y agrega la fecha de entrega del producto correspondiente.

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 que llena combobox dependiendo de otro combobox y a su vez controla los datos de un listbox, 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 la el llenado del primer combobox, luego del segundo combobox en base a los selecionado en el primer combobox; por último el listbox depende de lo seleccionado en el combobox anterior.

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 Botón1_Haga_clic_en()
UserForm2.Show

End Sub



Código que se inserta en un userform

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
ListBox1.Clear
ListBox1.ColumnCount = 6

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 de la celda list box
        a = ListBox1.ListCount
        ListBox1.AddItem
        ListBox1.List(a, 0) = Sheets("hoja2").Cells(fila, 1)
        ListBox1.List(a, 1) = Sheets("hoja2").Cells(fila, 2)
        ListBox1.List(a, 2) = Sheets("hoja2").Cells(fila, 3)
        ListBox1.List(a, 3) = Sheets("hoja2").Cells(fila, 4)
        ListBox1.List(a, 4) = Sheets("hoja2").Cells(fila, 5)
        ListBox1.List(a, 5) = 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
ListBox1.Clear
ComboBox1.SetFocus
MsgBox ("El registro se guardó con éxito"), vbInformation, "AVISO"
ComboBox3.Clear
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