Macro recorre filas, busca dato y elimina




En este post voy a mostrar una macro que recorre las filas buscando un dato cuando lo encuentra elimina los datos de toda la fila, algo parecido se expuso en recorre filas busca y copia o quizás te ayude recorrer filas buscando y comparando datos, recorrer filas y contar celdas con datos, recorrer filas y copiar de la columna A a la B hay varios ejemplos que encontrarás aquí.

Antes de comenzar y si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)

 

El ejemplo de macro de VBA, tiene por objeto tomar una serie de datos que se encuentran en la columna A hasta la última fila con datos, luego busca en los códigos o valores de la columna D, una vez que se encontró el dato se eliminan todos los registros de la fila.

Se debe notar que se realizan dos bucles, uno dentro del otro, el primer bucle permite recorrer todos los datos de la columna A, que luego son buscados en la Columna D, si no encuentra el dato en la columna D pasa a la fila siguiente hasta la última fila con datos, luego vuelve a tomar el segundo dato de la columna A y a Buscar en la columna D y así sucesivamente hasta que se llegue hasta el último dato o última fila con datos.

Encontrados los datos son eliminados de la hoja uno, se empieza en la fila dos y se analiza hasta la última celda ocupada.

Recomiendo un excelente libro sobre Excel el cual te ayudará a operar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. 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 utiliza que recorre todas la filas, luego busca en un rango de datos y elimina registros, 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 realizando la búsqueda de datos, el código es libre y se puede modificar y adaptar a la necesidad de cada uno.



Código que se inserta en un userform



Sub BuscarDatosEliminaFila()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim conta As Integer
Sheets("Hoja2").Range("A1:H100").Copy Destination:=Sheets("Hoja1").Cells(1, 1)
f = 2
f1 = 2
uf = Sheets("Hoja1").Range("D" & Rows.Count).End(xlUp).Row
Sheets("Hoja1").Range("D" & f1 & ":H" & uf).Interior.Pattern = xlNone
Sheets("Hoja1").Select
Cells(f, 1).Select
While Cells(f, 1) <> Empty
dato = Cells(f, 1)

   While Cells(f1, 4) <> Empty
   dato1 = Cells(f1, 4)
    If dato = dato1 Then
    Sheets("Hoja1").Range("D" & f1 & ":H" & f1).Delete Shift:=xlUp
    conta = conta + 1
    f2 = f2 + 1
    End If
   f1 = f1 + 1
   Wend
f1 = 2
f = f + 1
Wend

uf = Sheets("Hoja2").Range("C" & Rows.Count).End(xlUp).Row
Sheets("Hoja2").Range("C" & 2 & ":E" & uf).NumberFormat = "#,##0.00"
If conta = 0 Then
MsgBox ("No se encontró el código buscado"), vbInformation, "AVISO"
Else
MsgBox ("Se eliminaron " & conta & " registros"), vbInformation, "AVISO"
End If
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 recorre filas, busca dato y resalta fila




En el anterior ejemplo se expuso sobre como se puede con una macro recorre las filas buscando un dato cuando lo encuentra copia los datos y los pega en otra hoja, algo parecido se expuso en recorre filas busca y copia o quizás te ayude recorrer filas buscando y comparando datos, recorrer filas y contar celdas con datos, recorrer filas y copiar de la columna A a la B hay varios ejemplos que encontrarás aquí.

Recomiendo antes de seguir un excelente libro sobre Excel el cual te ayudará a operar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. 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.

Ahora voy a mostrar otra variante, el ejemplo consiste en recorrer las filas encontrar el registro y resaltar la fila donde se encuentra, se recorre todas las filas hasta la última con datos, busca en la columna de búsqueda respectiva, una vez hallado el registro lo resalta con color, desde el link del final puedes descargar el ejemplo.

Antes de comenzar y si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)

 

El ejemplo de macro de VBA, tiene como fin tomar una serie de datos que se encuentran en la columna A hasta la última fila con datos, luego busca en los códigos o valores de la columna D, una vez que se encontró el dato colorea o resalta toda la fila donde se encontró el dato

Se debe notar que se realizan dos bucles, uno dentro del otro, el primer bucle permite recorrer todos los datos de la columna A, que luego son buscados en la Columna D, si no encuentra el dato en la columna D pasa a la fila siguiente hasta la última fila con datos, luego vuelve a tomar el segundo dato de la columna A y a Buscar en la columna D y así sucesivamente hasta que se llegue hasta el último dato o última fila con datos.

Al último sale un msgbox mostrando la cantidad de registros encontrados, en caso que no encuentre también sale un msgbox avisando sobe dicha situación.


El ejemplo de macro que utiliza que recorre todas la filas, luego busca en un rango de datos y colorea o resalta la fila donde se encontró el dato, 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 realizando la búsqueda de datos, el código es libre y se puede modificar y adaptar a la necesidad de cada uno.



Código que se inserta en un userform



Sub BuscarDatosColoreaFila()
Application.ScreenUpdating = False
'On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim conta As Integer
f = 2
f1 = 2
uf = Sheets("Hoja1").Range("D" & Rows.Count).End(xlUp).Row
Sheets("Hoja1").Range("D" & f1 & ":H" & uf).Interior.Pattern = xlNone
Sheets("Hoja1").Select
Cells(f, 1).Select
While Cells(f, 1) <> Empty
dato = Cells(f, 1)

   While Cells(f1, 4) <> Empty
   dato1 = Cells(f1, 4)
    If dato = dato1 Then
    Sheets("Hoja1").Range("D" & f1 & ":H" & f1).Interior.Color = 255
    conta = conta + 1
    f2 = f2 + 1
    End If
   f1 = f1 + 1
   Wend
f1 = 2
f = f + 1
Wend

uf = Sheets("Hoja2").Range("C" & Rows.Count).End(xlUp).Row
Sheets("Hoja2").Range("C" & 2 & ":E" & uf).NumberFormat = "#,##0.00"
If conta = 0 Then
MsgBox ("No se encontró el código buscado"), vbInformation, "AVISO"
Else
MsgBox ("Se encontraron " & conta & " códigos"), vbInformation, "AVISO"
End If
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 recorre filas, busca, copia y pega datos




En este post voy a mostrar una macro que recorre las filas buscando un dato cuando lo encuentra copia los datos y los pega en otra hoja, algo parecido se expuso en recorre filas busca y copia o quizás te ayude recorrer filas buscando y comparando datos, recorrer filas y contar celdas con datos, recorrer filas y copiar de la columna A a la B hay varios ejemplos que encontrarás aquí.

Antes de comenzar y si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)

 

El ejemplo de macro de VBA, tiene por objeto tomar una serie de datos que se encuentran en la columna A hasta la última fila con datos, luego busca en los códigos o valores de la columna D, una vez que se encontró el dato es pegado en la columna A a la E, pero de la Hoja2.

Se debe notar que se realizan dos bucles, uno dentro del otro, el primer bucle permite recorrer todos los datos de la columna A, que luego son buscados en la Columna D, si no encuentra el dato en la columna D pasa a la fila siguiente hasta la última fila con datos, luego vuelve a tomar el segundo dato de la columna A y a Buscar en la columna D y así sucesivamente hasta que se llegue hasta el último dato o última fila con datos.

Encontrados los datos son copiados en la hoja dos, se empieza en la fila dos y se van adicionando copiando en la fila siguiente a la última celda ocupada.

Recomiendo un excelente libro sobre Excel el cual te ayudará a operar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. 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 utiliza que recorre todas la filas, luego busca en un rango de datos y copia en otra hoja, 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 realizando la búsqueda de datos, el código es libre y se puede modificar y adaptar a la necesidad de cada uno.



Código que se inserta en un userform



Sub BuscarDatos()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim conta As Integer
f = 2
f1 = 2
f2 = 2
Sheets("Hoja2").Cells.Clear
Sheets("Hoja1").Range("D" & 1 & ":H" & 1).Copy Destination:=Sheets("Hoja2").Range("A" & 1)
Sheets("Hoja1").Select
Cells(f, 1).Select
While Cells(f, 1) <> Empty
dato = Cells(f, 1)

   While Cells(f1, 4) <> Empty
   dato1 = Cells(f1, 4)
    If dato = dato1 Then
    Sheets("Hoja1").Range("D" & f1 & ":H" & f1).Copy Destination:=Sheets("Hoja2").Range("A" & f2)
    conta = conta + 1
    f2 = f2 + 1
    End If
   f1 = f1 + 1
   Wend
f1 = 2
f = f + 1
Wend

uf = Sheets("Hoja2").Range("C" & Rows.Count).End(xlUp).Row
Sheets("Hoja2").Range("C" & 2 & ":E" & uf).NumberFormat = "#,##0.00"
If conta = 0 Then
MsgBox ("No se encontró el código buscado"), vbInformation, "AVISO"
Else
MsgBox ("Se copiaron con éxito " & conta & " códigos"), vbInformation, "AVISO"
End If
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 utilizar WorksheetFunction Sum o Suma




Antes de comenzar y si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)

 

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.

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 entre otras, en esta ocasión muestro como se utiliza la función suma.

Existe un gran libro sobre Excel el cual te ayudará manejar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. 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 Sum o Suma se usa para obtener la suma de todos los valores de un rango; la sintaxis es la siguiente:

WorksheetFunction.Sum(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 sumar.

El ejemplo macro de VBA muestra como calcular con una macro la suma de valores ingresados en un rango de datos; lo primero que se realiza es determinar cual es la última fila con datos mediante la variable "uf", luego se aplica la función Sum o Summa; el rango se determina en forma automática y se aplica la función para encontrar la sumatoria que es cargado en una variable.

El ejemplo que podrás descargar desde el link del final, realiza la sumatoria en forma individual de las columnas C, D y E, una vez realizada se procede a calcular el total general de estas tres columnas, luego se crea un msgbox en caso que existan datos calcula y muestra la suma de las tres columnas mencionadas, en caso contrario aparece un letrero indicando que no existen datos.

Analizando en código veremos que Range("C" & pf & ":C" & uf), es el Arg1 que indica los valores sobre los cuales se debe realizar una suma, lo mismo se hace con el resto de la columnas y con el total general, que es este caso es la suma de las columnas C, D y E.

El ejemplo de macro que utiliza WorksheetFunction Sum o Sumase 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 correspondiente, para probarla se pueden cambiar los datos y el resultado se modificará



Código que se inserta en un userform



Sub FuncSum()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
pf = 4
pf1 = 1
uf = Sheets("Hoja1").Range("E" & Rows.Count).End(xlUp).Row
Av1 = Application.WorksheetFunction.Sum(Range("C" & pf & ":C" & uf))
Av2 = Application.WorksheetFunction.Sum(Range("D" & pf & ":D" & uf))
Av3 = Application.WorksheetFunction.Sum(Range("E" & pf & ":E" & uf))
Av4 = Application.WorksheetFunction.Sum(Range("C" & pf1 & ":E" & pf1))

Cells(1, "C") = Av1
Cells(1, "D") = Av2
Cells(1, "E") = Av3

Range("C" & 1 & ":E" & 1).NumberFormat = "#,##0.00"
If Av4 <> Empty Then
MsgBox ("El total general es " & Av4), vbInformation, "AVISO"
Else
Cells(1, "C") = "No se encontraron registros para promediar"
MsgBox ("No se encontraron datos"), vbInformation, "AVISO"
End If
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 utilizar WorksheetFunction Average o Promedio




En WorksheetFunction funciones de Excel en VBA se mencionó que WorksheetFunction tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, pudiéndose agregar en una macro y usar estas funciones, se incorporó un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA que puede ser de utilidad.

Se ha escrito sobre una de las funciones más usadas en la búsqueda de datos, detallando como se utiliza la función VLookup o BuscarV; en 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 entre otras.

Antes de seguir y si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)

 


La función WorksheetFunction Average o Promedio se usa para calcular el promedio de valores que existe en un rango de datos; la sintaxis es la siguiente:

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

El significado de los parámetros son:

Arg1 a Arg30, es un dato obligatorio, representan los valores que se desea promediar.

Existe un gran libro sobre Excel el cual te ayudará manejar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá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 macro de VBA muestra como calcular con una macro el promedio de valores ingresados en un rango de datos; lo primero que se realiza es determinar cual es la última fila con datos mediante la variable "uf", luego se aplica la función Average o Promedio determina el rango de datos en forma automática y se aplica la función para encontrar el promedio que es cargado en una variable

En el ejemplo se realiza el promedio de la columna C, D y E, una vez encontrado se procede a calcular el promedio general de estas tres columnas, luego se crea un msgbox en caso que existan datos calcula y muestra el promedio de las tres columnas mencionadas, en caso contrario aparece un letrero indicando que no existen datos.

Analizando en código veremos que Range("C" & pf & ":C" & uf), es el Arg1 que indica los valores sobre los que se requiere calcular el promedio, lo mismo se hace con el resto de la columnas y con el promedio general, que es este caso es el promedio de las columnas C, D y E.

El ejemplo de macro que utiliza WorksheetFunction Average o Promedio 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 promedio, para probarla se pueden cambiar los datos y el resultado se modificará



Código que se inserta en un userform



Sub FuncAverage()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
pf = 4
pf1 = 1
uf = Sheets("Hoja1").Range("E" & Rows.Count).End(xlUp).Row
Av1 = Application.WorksheetFunction.Average(Range("C" & pf & ":C" & uf))
Av2 = Application.WorksheetFunction.Average(Range("D" & pf & ":D" & uf))
Av3 = Application.WorksheetFunction.Average(Range("E" & pf & ":E" & uf))
Av4 = Application.WorksheetFunction.Average(Range("C" & pf1 & ":E" & pf1))

Cells(1, "C") = Av1
Cells(1, "D") = Av2
Cells(1, "E") = Av3

Range("C" & 1 & ":E" & 1).NumberFormat = "#,##0.00"
If Av4 <> Empty Then
MsgBox ("El promedio general es " & Av4), vbInformation, "AVISO"
Else
Cells(1, "C") = "No se encontraron registros para promediar"
MsgBox ("No se encontraron datos"), vbInformation, "AVISO"
End If
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 utilizar WorksheetFunction VLookup o BuscarV




Ahora voy a exponer sobre unas de las funciones más usadas en la búsqueda de datos, detallando como se utiliza la función VLookup o BuscarV; en 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.

En este post WorksheetFunction funciones de Excel en VBA se dijo que WorksheetFunction tiene por objeto ejecutar casi todas las funciones que trae incorporadas Excel, es decir se puede agregar en una macro y echar manos a estas funciones, luego se expuso un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA.

La función WorksheetFunction VLookup o BuscarV sirve para buscar un dato que se requiera en la primer columna de la matriz tabla o base de datos donde deseamos buscar los datos, devolviendo el dato o valor de la misma fila y columna especificada; la sintaxis es la siguiente:

WorksheetFunction.VLookup(Arg1, Arg2, Arg3, Arg4)

El significado de los parámetros son:

Arg1, es un dato obligatorio, representa el valor buscado que se va a buscar en la primera columna de la matriz o base de datos..

Arg2, dato obligatorio que indica la matriz, tabla o base de datos de dos o más columnas donde se va a buscar el dato del Arg1, es decir el dato que se requiere buscar en la base de datos, los valores pueden ser texto, números o valores lógicos, las mayúsculas y minúsculas son equivalentes.

Arg3, este argumento es obligatorio e indica la columna donde se encuentra el dato a devolver, 2 indica la columna dos, 6 la columna seis y así sucesivamente.

Arg4, este argumento es opcional indica si se requiere que VLookup localice la coincidencia exacta o aproximada.

Antes de seguir y si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)




  

El ejemplo macro de VBA que se puede descargar del link del final, muestra en detalle como se usa la WorksheetFunction VLookup o BuscarV; lo primero que se realiza es determinar cual es la última fila con datos mediante la variable "uf", luego se aplica la función, el objeto del ejemplo es encontrar el código que se introduce en la celda "B1", la función busca en toda la base de datos cuyo rango se determina automáticamente.

Una vez encontrado el dato lo agrega en una variable, en este caso se desean recuperar todos los datos contenidos en la fila donde se encuentra el dato buscado, es por ello que se aplica la función varias veces y se agrega el dato correspondiente a una variable.

Luego se copia el valor de las diferentes variables en las celdas de la A a la E de la fila 3, en el caso de que no encuentre el código ingresado en la base de datos, en dicha fila 3 aparece un letrero indicando que no se han encontrado datos.

Posteriormente aparece un Msgbox, si quieres aprender sobre como crear msgbox click en el link; en el Msgbox se establece muestra si se encontraron datos en caso que no existan datos muestra otro cartel indicando que no existen datos.

Examinando la función veremos que Cells(1, "B"), es el Arg1 que indica donde se encuentra el valor a buscar; luego Range("A" & pf & ":E" & uf), indica el rango donde se debe buscar los datos, teniendo presente que busca en la primer columna de la matriz o base de datos, el último dato VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 4); indica que se debe devolver el valor de la columna 4. 

Te recomiendo que leas un gran libro sobre Excel el que te ayudará manejar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. 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 utiliza WorksheetFunction VLookup o BuscarV 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, previamente se debe cargar un código de barra a buscar en la celda "B1".


Código que se inserta en un userform





Sub VlookupoBuscarV()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
pf = 6
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
bus1 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 1)
bus2 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 2)
bus3 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 3)
bus4 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 4)
bus5 = Application.WorksheetFunction.VLookup(Cells(1, "B"), Range("A" & pf & ":E" & uf), 5)

Cells(3, "A") = bus1
Cells(3, "B") = bus2
Cells(3, "C") = bus3
Cells(3, "D") = bus4
Cells(3, "E") = bus5

Range("C" & 3 & ":E" & 3).NumberFormat = "#,##0.00"
If bus1 <> Empty Then
MsgBox ("Los datos fueron encontrados con éxito"), vbInformation, "AVISO"
Else
Cells(3, "A") = "No se encontraron registros en la base de datos"
MsgBox ("No se encontraron datos"), vbInformation, "AVISO"
End If
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