Funciones en vba
Cordiales desde mexico.
Y espero que me puedas apoyar con este problema que tengo:
-Actualmente tengo una tabla en una hoja de excel, tiene datos de unidades (autos)y destinos, por lo que para encontrar los kilómetros a recorrer hacemos la intersección de que unidad es y a que destino va.
He estado usando la función "coincidir" para localizar el numero de columna o fila según el caso, y para encontrar la intersección de estas uso la función "indice". Con esto logro el objetivo de hallar los kms a recorrer de acuerdo al destino y unidad.
PERO: deseo hacerlo con un userform! Con 3 textbox, en donde a dos les ingrese el numero de unidad y al otro el destino y el tercero me muestre el resultado. Para ello quiero saber si es posible hacerlo, y se serlo que me muestres que código a usar para hacer funcionar estas funciones en VBA(coincidir e indice.
Y espero que me puedas apoyar con este problema que tengo:
-Actualmente tengo una tabla en una hoja de excel, tiene datos de unidades (autos)y destinos, por lo que para encontrar los kilómetros a recorrer hacemos la intersección de que unidad es y a que destino va.
He estado usando la función "coincidir" para localizar el numero de columna o fila según el caso, y para encontrar la intersección de estas uso la función "indice". Con esto logro el objetivo de hallar los kms a recorrer de acuerdo al destino y unidad.
PERO: deseo hacerlo con un userform! Con 3 textbox, en donde a dos les ingrese el numero de unidad y al otro el destino y el tercero me muestre el resultado. Para ello quiero saber si es posible hacerlo, y se serlo que me muestres que código a usar para hacer funcionar estas funciones en VBA(coincidir e indice.
Respuesta
2
Existen muchos archivos PDF que te muestran el totalidad de funciones tanto en INGLES como en ESPAÑOL.Cuando se desean utilizar las funciones de EXCEL pero en MACROS, simplemente conviertelas al INGLES anteponiendole el APPLICATION.Ejemplo: EN EXCEL: =INDICE(matrix,COINCIDIR(valor,matrix,0)) EN MACROS: DIM RangoAux,RangoAux2 AS VARIANT SET RangoAux1 = Sheets("Hoja1").Range("A1:A10") SET RangoAux2 = Sheets("Hoja1").Range("B1:B10") Textbox1.Value = Application.Index(RangoAux1, Application.Match(valor.Value, RangoAux2, 0)) Veo que ya tiene tiempo tu pregunta tal vez ya lo has de haber solucionado, de cualquier forma dejo aqui mi respuesta para otras posibles consultas. - Ramon Lopez Sainz