Buscar una referencia

25/10/2005 - 19:11 por Antonio | Informe spam
Os cuento mi problema:

Ten una tabla con datos que estan divididos por trios de columnas a los que
les pongo un nombre, por ejemplo TARIFA_1; TARIFA_2, etc... Lo que quiero
hacer en otra tabla que con la función BUSCARV me busque el valor de la
celda A1, por ejemplo, y si no lo encunetra en TARIFA_1 pues que busque en
TARIFA_2, etc.. ¿como puedo hacerlo?

Saludos y gracias.

Preguntas similare

Leer las respuestas

#1 Hernandez, Roberto
25/10/2005 - 20:05 | Informe spam
Ten una tabla con datos que estan divididos por trios de columnas a los
que les pongo un nombre, por ejemplo TARIFA_1; TARIFA_2, etc... Lo que
quiero hacer en otra tabla que con la función BUSCARV me busque el valor
de la celda A1, por ejemplo, y si no lo encunetra en TARIFA_1 pues que
busque en TARIFA_2, etc.. ¿como puedo hacerlo?

Saludos y gracias.



Te mando un pequeño segmento de código: Sólo pégalo en la hoja que
necesites.
Cuida los rangos y los nombres de las hojas...

Asume que escribirás el valor buscado en la columna A, obtendrás el
resultado en la columna B
TARIFA_1 está en las columnas C y D
TARIFA_2 está en las columnas E y F

Adecúalo a tus necesidades

'******************************************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Encontrado As Boolean
Dim matriz1, matriz2 As Variant
matriz1 = Worksheets("Hoja1").[C2:D600]
matriz2 = Worksheets("Hoja1").[E2:F600]


If (Intersect(Target, Range("A:A")) Is Nothing) Then Exit Sub

Encontrado = False

For i = 1 To 600
If Target.Value = matriz1(i, 1) Then Target.Offset(0, 1).Value =
matriz1(i, 2): Encontrado = True
If Target.Value = matriz2(i, 1) Then Target.Offset(0, 1).Value =
matriz2(i, 2): Encontrado = True
If Encontrado Then Exit Sub
Next

If Not Encontrado Then Target.Offset(0, 1).Value = "Not Found"

End Sub
'******************************************************************


"Antonio" escribió en el mensaje
news:
Os cuento mi problema:

Ten una tabla con datos que estan divididos por trios de columnas a los
que les pongo un nombre, por ejemplo TARIFA_1; TARIFA_2, etc... Lo que
quiero hacer en otra tabla que con la función BUSCARV me busque el valor
de la celda A1, por ejemplo, y si no lo encunetra en TARIFA_1 pues que
busque en TARIFA_2, etc.. ¿como puedo hacerlo?

Saludos y gracias.

Respuesta Responder a este mensaje
#2 Hernandez, Roberto
25/10/2005 - 20:13 | Informe spam
Cambia la linea que dice... For i = 1 to 600

a

For i = 1 To 599 'O sea N-1 iteraciones

Saludos!

"Antonio" escribió en el mensaje
news:
Os cuento mi problema:

Ten una tabla con datos que estan divididos por trios de columnas a los
que les pongo un nombre, por ejemplo TARIFA_1; TARIFA_2, etc... Lo que
quiero hacer en otra tabla que con la función BUSCARV me busque el valor
de la celda A1, por ejemplo, y si no lo encunetra en TARIFA_1 pues que
busque en TARIFA_2, etc.. ¿como puedo hacerlo?

Saludos y gracias.

Respuesta Responder a este mensaje
#3 Antonio
27/10/2005 - 11:37 | Informe spam
Funciona bien, pero me gustaría saber como puedo hacer para que al eliminar
el valor de A1, el que se de buscar en la matriz, desaparaezca tambien el
resutado de busqueda.

Saludos y gracias.


"Antonio" escribió en el mensaje
news:
Os cuento mi problema:

Ten una tabla con datos que estan divididos por trios de columnas a los
que les pongo un nombre, por ejemplo TARIFA_1; TARIFA_2, etc... Lo que
quiero hacer en otra tabla que con la función BUSCARV me busque el valor
de la celda A1, por ejemplo, y si no lo encunetra en TARIFA_1 pues que
busque en TARIFA_2, etc.. ¿como puedo hacerlo?

Saludos y gracias.

Respuesta Responder a este mensaje
#4 Hernandez, Roberto
27/10/2005 - 16:22 | Informe spam
Antonio:
No sé como te haya quedado al final, pero a mi me borra el resultado de la
búsqueda cuando elimino el valor de A1

Te mando el código otra vez para que los cheques

'**********************************************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Encontrado As Boolean
Dim matriz1, matriz2 As Variant
matriz1 = Worksheets("Hoja1").[C2:D600]
matriz2 = Worksheets("Hoja1").[E2:F600]


If (Intersect(Target, Range("A:A")) Is Nothing) Then Exit Sub

Encontrado = False

For i = 1 To 599 'Una menos que el número total de datos en las matrices
If Target.Value = matriz1(i, 1) Then Target.Offset(0, 1).Value =
matriz1(i, 2): Encontrado = True
If Target.Value = matriz2(i, 1) Then Target.Offset(0, 1).Value =
matriz2(i, 2): Encontrado = True
If Encontrado Then Exit Sub
Next

If Not Encontrado Then Target.Offset(0, 1).Value = "Not Found"

End Sub
'**********************************************************************

"Antonio" escribió en el mensaje
news:
Funciona bien, pero me gustaría saber como puedo hacer para que al
eliminar el valor de A1, el que se de buscar en la matriz, desaparaezca
tambien el resutado de busqueda.

Saludos y gracias.


"Antonio" escribió en el mensaje
news:
Os cuento mi problema:

Ten una tabla con datos que estan divididos por trios de columnas a los
que les pongo un nombre, por ejemplo TARIFA_1; TARIFA_2, etc... Lo que
quiero hacer en otra tabla que con la función BUSCARV me busque el valor
de la celda A1, por ejemplo, y si no lo encunetra en TARIFA_1 pues que
busque en TARIFA_2, etc.. ¿como puedo hacerlo?

Saludos y gracias.





Respuesta Responder a este mensaje
#5 Antonio
27/10/2005 - 19:24 | Informe spam
Pues ami me da un mensaje de error:

Se ha producido un error 9 en tiempo de ejecucion. Subindice fuera de
intervalo.

COmo no de mucho de código no se que quiere decir.

"Hernandez, Roberto" escribió en el mensaje
news:
Antonio:
No sé como te haya quedado al final, pero a mi me borra el resultado de la
búsqueda cuando elimino el valor de A1

Te mando el código otra vez para que los cheques

'**********************************************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Encontrado As Boolean
Dim matriz1, matriz2 As Variant
matriz1 = Worksheets("Hoja1").[C2:D600]
matriz2 = Worksheets("Hoja1").[E2:F600]


If (Intersect(Target, Range("A:A")) Is Nothing) Then Exit Sub

Encontrado = False

For i = 1 To 599 'Una menos que el número total de datos en las matrices
If Target.Value = matriz1(i, 1) Then Target.Offset(0, 1).Value =
matriz1(i, 2): Encontrado = True
If Target.Value = matriz2(i, 1) Then Target.Offset(0, 1).Value =
matriz2(i, 2): Encontrado = True
If Encontrado Then Exit Sub
Next

If Not Encontrado Then Target.Offset(0, 1).Value = "Not Found"

End Sub
'**********************************************************************

"Antonio" escribió en el mensaje
news:
Funciona bien, pero me gustaría saber como puedo hacer para que al
eliminar el valor de A1, el que se de buscar en la matriz, desaparaezca
tambien el resutado de busqueda.

Saludos y gracias.


"Antonio" escribió en el mensaje
news:
Os cuento mi problema:

Ten una tabla con datos que estan divididos por trios de columnas a los
que les pongo un nombre, por ejemplo TARIFA_1; TARIFA_2, etc... Lo que
quiero hacer en otra tabla que con la función BUSCARV me busque el valor
de la celda A1, por ejemplo, y si no lo encunetra en TARIFA_1 pues que
busque en TARIFA_2, etc.. ¿como puedo hacerlo?

Saludos y gracias.









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida