A vueltas con BuscarEnVariosRangos

26/05/2005 - 19:56 por Brel | Informe spam
Hago la pregumta a todos aunque el código está sacado de la página de
Fernando Arroyo:
Es posible usar "BuscarEnVariosRangos" cuando en la lista está duplicado el
valor abuscar? Si es asíi cómo puedo indicarle que el valor que quiero que
me encuentre es el 2º, 3º, 4º... Sé que celdas ocupan los lugares duplicados
y he montado un for...next, pero si aparece 4 veces en vez de ir cogiendo
cada uno aparecen 4 veces el valor/valores del 1º.
Gracias anricipadas.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
27/05/2005 - 11:34 | Informe spam
Prueba con la siguiente función, que he llamado BEVR (abreviaturas de Buscar En Varios Rangos):


Function BEVR(ValorBuscado As Variant, bColumna As Byte, iCoincidencia As Integer, ParamArray mtrR() As Variant) As Variant
'Función BuscarEnVariosRangos (BEVR) con la posibilidad de especificar el número de coincidencia a devolver
'Sintaxis: ¾VR(Valor que se busca; Columna a devolver; Nº. de coincidencia deseada; Rangos en que se buscará)

Dim iteradorR As Variant, iVez As Integer, lFila As Long, lFilaAcum As Long

BEVR = "No Encontrado"

For Each iteradorR In mtrR()
lFilaAcum = 0

Do

lFila = 0
On Error Resume Next
lFila = WorksheetFunction.Match(ValorBuscado, iteradorR.Columns(1).Offset(lFilaAcum).Resize(iteradorR.Rows.Count - lFilaAcum), 0)
On Error GoTo 0

If lFila = 0 Then
Exit Do
Else
iVez = iVez + 1
lFilaAcum = lFilaAcum + lFila
If iVez = iCoincidencia Then
BEVR = iteradorR.Cells(lFilaAcum, bColumna)
Exit Function
End If
End If

Loop

Next iteradorR

End Function


La sintaxis es la especificada en el código.

Si la función no encontrara ninguna coincidencia, o si no hubiera al menos tantas coincidencias como las que se han especificado, devolverá el texto "No Encontrado"

Yo he hecho unas cuantas pruebas y parece que funciona, pero te aconsejo que tú hagas bastantes más antes de fiarte "a ciegas" de la función.
Un saludo.


Fernando Arroyo
MS MVP - Excel



"Brel" escribió en el mensaje news:%
Hago la pregumta a todos aunque el código está sacado de la página de
Fernando Arroyo:
Es posible usar "BuscarEnVariosRangos" cuando en la lista está duplicado el
valor abuscar? Si es asíi cómo puedo indicarle que el valor que quiero que
me encuentre es el 2º, 3º, 4º... Sé que celdas ocupan los lugares duplicados
y he montado un for...next, pero si aparece 4 veces en vez de ir cogiendo
cada uno aparecen 4 veces el valor/valores del 1º.
Gracias anricipadas.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida