Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2008, 05:43
Laufwerk
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
VBA - Método Find de excel

Gracias a unos de vosotros conseguí hacer la busqueda mediante el método find.
A continuación les pongo el codigo resultante:
Código:
Sub CompareCols()
    'Auto_Open
    encontrada = False
    Dim celda As Range
    Dim rango As Range
    For i = 2 To numRows(1)
        Dim valor As String
        valor = Workbooks(2).Worksheets(1).Range(varcellOriginalColumn1 & i).Value
        
        Windows(myBook(2)).Activate
        Set rango = Range(varCellDestinyColumn1 & 2, varCellDestinyColumn1 & numRows(2))
        
        Set celda = rango.find(What:=valor, LookIn:=xlValues, LookAt:=xlWhole)

      If Not celda Is Nothing Then
        Windows(myBook(2)).Activate
        rowPos = celda.Row
        valueSearch = Range(varCellDestinyCopy & rowPos).Value
        'valueSearch = celda.Value
        'drawColorRow (pos)
        'Selection.Copy
        Windows(myBook(1)).Activate
        Workbooks(2).Sheets(1).Select
        Range(varCellInsertColumn & i).Value = valueSearch
        'drawColorRow (i)
        'ActiveSheet.Paste
      Else
        Windows(myBook(1)).Activate
        Rows(i & ":" & i).Select
        Range("N" & i).Activate
        With Selection.Interior
          .Pattern = xlSolid
          .PatternColorIndex = xlAutomatic
          .ThemeColor = xlThemeColorAccent2
          .TintAndShade = 0
          .PatternTintAndShade = 0
        End With
      End If
    Next i
    
    Set celda = Nothing
    Windows(myBook(2)).Activate
    Columns(varCellInsertColumn & ":" & varCellInsertColumn).EntireColumn.AutoFit
End Sub
pero ahora mi programa se complica y necesito buscar dos columnas, ¿se puede hacer con el metodo Find tambien?
He creado una macro y no me devuelve nada.

¿Cómo lo hariais?
A mi se me ocurre de la siguiente manera
en la fila i columna b
buscar ese valor en el otro archivo
Si lo encuentra1
buscar de la fila i columna c
si lo encuentra2
comparar que sean de la misma fila
sino
hacer algo o nada
fin si
fin si


creo que lo de comparar que sean de la misma fila es correcto pero no se bien como hacerlo, aparte de celda1.row = celda2.row

Imaginemos esta tablita1
Nombre Apellido
Juan Perez
Juan Gonzalo
Enrique Martin


Y la tablita2 a comparar
Juan Perez
Juan Gonzalo
Joaquin Velasco


Si deseamos buscar Juan Gonzalo
Primero buscaremos Juan y celda1.row será =1 (en la tabla2)
Luego buscaremos Gonzalo y celda2.row = 2 (en la tabla2)

por lo que ya no nos sirve este código,

Perdon por el rollo, pero es que no lo veo claro que funcione.


Gracias!!!

Última edición por Laufwerk; 27/10/2008 a las 07:28