Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

WorksheetFunction.DGet VBA

| 1 comentario

La función WorksheetFunction.DGet es una función de VBA que extrae un solo valor de una columna de una lista o de una base de datos que corresponde con las condiciones que se especifique. Se presenta de la siguiente manera:

WorksheetFunction.Dget (Arg1, Arg2, Arg3)

Donde Arg1 contiene el rango de celdas que conforma la base de datos. En la cual, la primera fila de la lista contiene etiquetas para cada columna.

Para Arg2 indica la columna donde se encuentra el posible valor. Para este caso, puede ingresar la etiqueta de la columna entre comillas dobles, por ejemplo, "Salario" o "Posición", o un número (estas sin comillas) que represente la posición de la columna dentro de la lista: 1 para la primera columna, 2 para la segunda columna , y así sucesivamente.

Por último, Arg3 es el rango de celdas que contiene las condiciones según el criterio. Es decir, se puede usar cualquier rango para el argumento de criterios, siempre que incluya al menos una etiqueta de columna y al menos una celda debajo de la etiqueta de la columna en la que se especifique una condición para dicha columna.

Por ejemplo, se presenta un registro de medicinas de algún hospital, en el cual se muestra distintos medicamentos. Sin embargo, se desea saber en particular el código, el stock del fármaco y el código de uno de ellos. 

Worksheetfunction.Dget

Entonces:

Se crea un cuadro donde se mostrará la medicina escogida y sus posibles datos a elegir

Worksheetfunction.Dget

El código sería es el siguiente:

Sub UsoDgetFunction()

Dim Descripcion As String

Descripcion = InputBox("Ingrese el nombre del medicamento", "Registro de los medicamentos")

Range("F2").Value = Descripcion

Range("G2").Value = Application.WorksheetFunction.DGet(Range("A1:D6"), 2, Range("F1:F2"))

Range("H2").Value = Application.WorksheetFunction.DGet(Range("A1:D6"), 3, Range("F1:F2"))

Range("I2").Value = Application.WorksheetFunction.DGet(Range("A1:D6"), 4, Range("F1:F2"))

End Sub

Por tanto, el código  pediría el nombre del medicamento, de esta forma: 

Worksheetfunction.Dget

Finalmente, el valor resultante sería el completo detalle de lo que se busca:

Worksheetfunction.Dget

Esta función equivale a la función BDEXTRAER en Excel

Descargar Ejemplo: Ejemplo Worksheetfunction.Dget

Por: Allison Monar

 

Un comentario

  1. ¿Cómo sería lo mismo pero cuando más de un producto?, por ejemplo otra aspirina.

Deja una respuesta

Los campos requeridos estan marcados con *.