VBA - Búsqueda Find con retornos múltiples

Resuelto
Mouftie Mensajes publicados 234 Estado Miembro -  
Patrice33740 Mensajes publicados 8400 Fecha de registro   Estado Miembro Última intervención   -
Hola,
he visto con gran interés su artículo sobre los retornos múltiples:
https://www.commentcamarche.net/faq/18696-vba-recherche-find-avec-retour-multiple
Sin embargo, me gustaría devolver la información de una celda, en lugar de la dirección de la celda encontrada.
No manejo bien las tablas virtuales; ¿cómo traducir Tb(i) (es decir, una referencia en forma $Col$Lg) en cells(1,tb(i))?
En otras palabras, ¿cómo recuperar los números de fila en Tb(i)?
Gracias por su ayuda.

8 respuestas

Patrice33740 Mensajes publicados 8400 Fecha de registro   Estado Miembro Última intervención   1 783
 
Hola,

Como esto, adaptando FindRech según sea necesario:
Sub RechMulti() Dim R As Long, TB() Dim i As Integer, Rch As String Rch = 22 'por ejemplo With Sheets("Feuil1") .Columns(7).ClearContents ' para los resultados R = RechFind(Rch, .Range("B1:E500"), 2, TB()) If R > 0 Then .Range("G1") = R & " Ocurrencias encontradas para : " & Rch .Range("G2").Resize(R, 1) = Application.Transpose(TB) Else MsgBox "No encontrado", , "Búsqueda" End If End With End Sub Function RechFind(ByVal Cle$, ByVal Plage As Range, _ ByVal Col&, ByRef TBval()) As Long 'Devuelve todos los valores encontrados en la búsqueda 'Clave = valor buscado 'Rango = rango a recorrer. 'Col = columna que contiene los valores a devolver. 'TBval = Tabla que devuelve los valores de la columna Col. Dim Cherche, Ix As Long, Adr With Plage Set Cherche = .Find(Cle, , xlValues, xlWhole) If Not Cherche Is Nothing Then Adr = Cherche.Address Do ReDim Preserve TBval(Ix) TBval(Ix) = Plage.Parent.Cells(Cherche.Row, Col) Set Cherche = .FindNext(Cherche) Ix = Ix + 1 Loop While Not Cherche Is Nothing And Cherche.Address <> Adr End If End With 'número de ocurrencia(s) encontrada(s), Devuelve 0 si no hay ninguna ocurrencia RechFind = Ix Set Cherche = Nothing 'Libera la memoria ocupada por el objeto. End Function

--
Atentamente
Patrice
2
Mouftie Mensajes publicados 234 Estado Miembro 17
 
Muchas gracias Patrice, está muy bien.
0