Estoy intentando buscar una lista de valores en varias hojas de trabajo de un libro y devolver tanto el encabezado de la columna como el encabezado de la fila en las celdas al lado de mi valor de búsqueda. Encontré un código que funciona perfecto para todos los valores en mi primera columna de datos (ColB) en la hoja de trabajo activa. Si agrego valores a mi lista que se encuentran en otra columna u otra hoja de trabajo, aparece un error de referencia circular y coloca un 0 en mis celdas de función. Puse mi lista de valores para buscar en la columna 1 debajo de mi última fila de datos y puse ambas funciones en las columnas al lado de ellas.
¿Alguien puede ayudarme a solucionar este problema?
Mi libro de trabajo consta de una cantidad cada vez mayor de hojas de trabajo en el mismo formato. Cada hoja de trabajo tiene encabezados de columna en la fila 1 y encabezados de fila en la columna 1, 81 filas y 40 columnas llenas de datos. La lista de valores a buscar puede ser de hasta 1000 o más.
Function MyROW(MyVAL)
With ActiveSheet.UsedRange
FFIND = False
For J = .Column + 1 To .Column + .Columns.Count
For I = .Row + 1 To .Row + .Rows.Count
If (Cells(I, J) = MyVAL) Then
FFIND = True
GoTo MyEND
End If
Next I
Next J
MyEND:
If (FFIND) Then MyROW = Cells(I, .Column)
End With
Función final
Function MyCOLUMN(MyVAL)
With ActiveSheet.UsedRange
FFIND = False
For J = .Column + 1 To .Column + .Columns.Count
For I = .Row + 1 To .Row + .Rows.Count
If (Cells(I, J) = MyVAL) Then
FFIND = True
GoTo MyEND
End If
Next I
Next J
MyEND:
If (FFIND) Then MyCOLUMN = Cells(.Row, J)
End With
Función final
En la celda B84 coloqué esta función: =MiCOLUMNA(A84) y la bajé a las celdas debajo de ella. En la celda C84 hice lo mismo con la función: =MyROW(A84). Ambas funciones funcionan bien si pongo un valor en A84 que se puede encontrar en A2-A82, pero no si pongo un valor en a84 que se puede encontrar en B2-AO82.