Busqueda rapida en Excel 2 Sheets

Tengo 2 sheets y en un modulo tengo dos for (uno para cada sheet) que recorre el primer sheet y pregunta si el código esta en el segundo sheet, lo hace registro por registro y conforme va encontrando hace una operación adicional.

Mi inconveniente es que conforme crece los registros en ambos sheets la búsqueda se hace más lenta, de que otra forma puedo mejorar la búsqueda y por ende el tiempo de respuesta.

3 Respuestas

Respuesta
1

Puedes cambiar el segundo For por el método .find, de esta forma es más rápido que un For.

Por ejemplo, recorre la hoja1 desde el registro 2 hasta el último de la columna A y busca el código en la columna A de la hoja2, en caso de existir más de un código sigue buscando.

Sub Buscar_Codigos()
'Por Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        Set r = h2.Columns("A")
        Set b = r.Find(h1.Cells(i, "A"), LookAt:=xlWhole)
        If Not b Is Nothing Then
            celda = b.Address
            Do
                'Aquí encontró un código, debes poner la operación adicional
                fila = b.Row
                'Por ejemplo:
                    'pone en la columna E de la hoja2
                    'el dato de la columna C de la hoja1
                    h2.Cells(fila, "E").Value = h1.Cells(i, "C").Value
                    '
                    '
                Set b = r.FindNext(b)
            Loop While Not b Is Nothing And b.Address <> celda
        End If
    Next
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda
.

Y es posible realizar un find con dos campos o celdas, por ejemplo ubicar del sheet 1 en el sheet 2 el registro donde el campo código de empleado y código curso que están en sheet1 lo encuentre en sheet 2

Gracias

Ahora sí necesito que pongas ejemplos reales de cómo están tus datos en cada hoja. Puedes poner imágenes de tus hojas y explica un ejemplo que aparezca en las imágenes.

Respuesta
1

.

Lo significativo de tu pregunta es: - "... hace una operación adicional ..."

Te confieso que mis dotes telepáticas no me permiten inferir completamente a que te refieres ya que -no resulta difícil suponer- que es "esto" lo que te está provocando el problema.

.

.

Respuesta

No se indentifica bien cual es tu problema compañero =/

Como dice Mario no aclaras bien cual es el inconveniente que tienes ¿?

  • Compara datos de la hoja 1 y la hoja 2
  • Busca datos en la hoja 1 y los remplaza por los de la hoja 2
  • Envía datos desde la hoja 1 hacia la hoja 2

No se distingue bien que hace tu código ¿? ¿?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas