Macro que busque ceros en una columna y después haga una búsqueda.

Hola Dam, de nuevo recurro a mi experto favorito, ahora tengo una macro que busca valores en otro libro de excel, es decir tengo libro2 (hoja 2), libro1 (hoja1) del libro2 comparo la columna E contra el libro1(hoja1) la columna B y extraigo el dato que coincide al libro1 en la columna K, todo esto lo hace bien, pero hay algunos ID que no están en la columna E del libro2 , por lo tanto si no esta el dato le asigno 0; entonces tengo que hacer una nueva búsqueda sobre estos mismos libros pero ahora con los ceros que encontró en la columna K realizo la búsqueda ahora de la columna D libro2 contra la columna C del libro1 y donde tenia esos ceros me ponga la nueva info que encontró:

Agrego macro que me hace la primer búsqueda y sino encuentra el ID me pone cero en la columna K la celda que corresponde:

' BUSCO LA INFORMACIÓN PARA EXTRAER DATOS
'Application.ScreenUpdating = False
Range("E2").Select
Do While ActiveCell.Value <> ""
valor = ActiveCell
Set busca = Workbooks("Listado Refinanciamiento-OCTUBRE 2012.xlsx").Sheets("LISTADO OCT-12").Range("B5:B" & Workbooks("Listado Refinanciamiento-OCTUBRE 2012.xlsx").Sheets("LISTADO OCT-12").Range("B65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ActiveCell.Offset(0, 6).Value = busca.Offset(0, 2)
Else
ActiveCell.Offset(0, 6).Value = 0
End If
ActiveCell.Offset(1, 0).Select
Loop
'Application.ScreenUpdating = True
Sheets("Hoja2").Select
End Sub

Pensé en hacer una nueva búsqueda donde encontrara los ceros, pero seria perder mucho tiempo aparte de que no me funciono la macro, me podrías ayudar, anexo segunda parte de la macro:

Sub BUSCAR_CEROS()
'Sheets("Hoja2").Select
Range("K2").Select
Do While ActiveCell.Value <> ""
cero = ActiveCell
If ActiveCell.Value = 0 Then
Range("D2").Select
Do While ActiveCell.Value <> ""
valor = ActiveCell
Set busca = Workbooks("Listado Refinanciamiento-OCTUBRE 2012.xlsx").Sheets("LISTADO OCT-12").Range("C5:C" & Workbooks("Listado Refinanciamiento-OCTUBRE 2012.xlsx").Sheets("LISTADO OCT-12").Range("C65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ActiveCell.Offset(0, 7).Value = busca.Offset(0, 1)
Else
'NO HAGAS NADA
End If
ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True
Sheets("Hoja2").Select
End If
Loop
End Sub

Desde ya muchas gracias. Saludos, espero haberme explicado.

1 Respuesta

Respuesta
1

Revisa con la siguiente macro

Sub BUSCAR_CEROS()
Range("D2").Select
Do While ActiveCell.Value <> ""
    If Cells(ActiveCell.Row, "K") = 0 Then
        valor = ActiveCell
        Set busca = Workbooks("Listado Refinanciamiento-OCTUBRE 2012.xlsx").Sheets("LISTADO OCT-12").Range("C5:C" & Workbooks("Listado Refinanciamiento-OCTUBRE 2012.xlsx").Sheets("LISTADO OCT-12").Range("C65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
        If Not busca Is Nothing Then
        ActiveCell.Offset(0, 7).Value = busca.Offset(0, 1)
        Else
        'NO HAGAS NADA
        End If
        ActiveCell.Offset(1, 0).Select
    End If
Loop
Application.ScreenUpdating = True
Sheets("Hoja2").Select
End Sub

Saludos.Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas