Macros para mi libro de Microsoft Excel

Hola,
Soy nuevo en el portal pero he leído muchas de las consultas que hacen y me han ayudado mucho. Estoy en un autolearning en el mundo del excel por mi nuevo puesto y estoy tratando de realizar una macro que me valide datos de un libro contra otro.
Me explico tengo una base de datos origen en donde cada semana me toca alimentarla pero solo en ciertas casillas y lo que necesito es lo siguiente. Hasta el momento la macro me abre el archivo que le indico verifica I2 contra I2, luego pasa H2 contra H2, luego J2 contra J2 y sino existe en ninguno me marca la fila en rojo, pero estoy pegado en que luego de esto necesito que baje a la I3 y realize el mismo proceso y así sucesivamente, hasta que no encuentre más registros. +/- Esta es la macro que tengo.
Les agradecería si me dan una luz en como hacer un bucle que me realice esta acción.
De antemano Mil Gracias
Sub Traerbuena()
Workbooks.Open ("C:\Documents and Settings\grestrg\Escritorio\REFERIDOS\NOVIEMBRE\CONSOLIDADOS\TERCER SEMANA\RESPUESTAS\Linea.xls")
Application.ScreenUpdating = False
Sheets("hoja1").Select
Range("I2").Select
cuenta = ActiveCell
salto:
cuenta = cuenta + 1
If ActiveCell.Value <> "" = 0 Then
ActiveCell.Offset(0, -1).Select
Else: GoTo salto2
End If
If ActiveCell.Value <> "" = 0 Then
ActiveCell.Offset(0, 2).Select
Else: GoTo salto2
End If
If ActiveCell.Value <> "" = 0 Then
ActiveCell.Offset(0, -1).Select
Else: GoTo salto2
End If
ActiveCell.EntireRow.Select
With Selection.Interior
        .ColorIndex = 3
        .Pattern = xlSolid
GoTo salto
End With
salto2:
Posicion = 1
While ActiveCell.Value <> ""
direccion = ActiveCell.Value
Workbooks("BD PRUEBA REF.xls").Activate
Sheets("BASE DE DATOS").Select
Range("I2").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = direccion Then
Workbooks("LINEA.xls").Activate
Sheets("hoja1").Select
comentario = ActiveCell.Offset(0, 8).Value
Workbooks("BD PRUEBA REF.xls").Activate
Sheets("BASE DE DATOS").Select
ActiveCell.Offset(0, 8) = comentario
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
Workbooks("LINEA.xls").Activate
Sheets("hoja1").Select
Posicion = Posicion + 1
Range("I2").Select
ActiveCell.Offset(Posicion - 1, 0).Range("A1").Select
Wend
End Sub
{"lat":2.46018118102101,"lng":-73.828125}
1

1 Respuesta

2.066.690 pts. En mi sitio encontraran material de ayuda, ejemplos...
Veo que tenés un bucle que recorre la hoja BASE hasta encontrar el valor buscado (ver *)
Bien, del mismo modo tenés que colocarlo para recorrer la hoja1 del primer libro:
Sheets("hoja1").Select
Range("I2").Select
While activecell.value <> ""
       cuenta = ActiveCell
       salto:
    'aquí el resto de tu rutina hasta el Wend
      Wend
'paso a la fila sgte. Seguramente tendrás que activar nuevamente el primer libro
Workbooks(libro1).Activate
activecell.offset(1,0).select
wend
End Sub
Pruébalo y si te da algún error escribí la rutina tal como te quedó e indicando la línea del error.
(*) Para buscar un dato será más rápido si utilizas Set en lugar de recorrer la col. En la Ayuda de Excel encontrarás ejemplos, sino en mi página de macros o de descargas.
PD) Durante todo dbre, encontrarás mis manuales al 50% de su valor... no te los pierdas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas