comparar dos columnas para encontrar coincidencias

13/05/2010 - 13:50 por gongi | Informe spam
Hola Grupo! , saludos,

Uso esta macro para comparar dos columnas ,una se selecciona
manualmente y otra se establece en la variable CompareRange. Luego
coloca las coincidencias en otra columna "Then x.Offset(0, 7) "

Como este rango ['Set CompareRange = Range("B1:B500")] va aumentando ,
se podría establecer por código la última celda no vacia B1:--

BXXX ,?



Es que no consigo encajar la caracteristica End(xlDown)

Muchas gracias por la ayuda

Sub Find_Matches()

Dim CompareRange As Variant, x As Variant, y As Variant
' Set CompareRange equal to the range to which you will
' compare the selection.
'Set CompareRange = Range("B1:B500")
' NOTE: If the compare range is located on another workbook
' or worksheet, use the following syntax.
'
' Loop through each cell in the selection and compare it to
' each cell in CompareRange.
For Each x In Selection
For Each y In CompareRange
If x = y Then x.Offset(0, 7) = x
Next y
Next x
End Sub
 

Leer las respuestas

#1 Héctor Miguel
14/05/2010 - 02:50 | Informe spam
hola, domingo !

Uso esta macro para comparar dos columnas ,una se selecciona manualmente
y otra se establece en la variable CompareRange.
Luego coloca las coincidencias en otra columna "Then x.Offset(0, 7)"
Como este rango ['Set CompareRange = Range("B1:B500")] va aumentando
se podría establecer por código la última celda no vacia B1:--BXXX ,?
Es que no consigo encajar la caracteristica End(xlDown)



es probable que la siguiente macro se ejecute mas rapido sin dobles bucles "celda-por-celda" (?)

Sub CopiaExistentes()
Dim base As String
With Selection.Offset(, 7)
base = .Offset(, -7).Resize(1, 1).Address(0, 0)
.Formula = "=if(countif(b:b," & base & ")," & base & ","""")"
.Value = .Value
End With
End Sub

haz pruebas y si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub Find_Matches()
Dim CompareRange As Variant, x As Variant, y As Variant
' Set CompareRange equal to the range to which you will
' compare the selection.
'Set CompareRange = Range("B1:B500")
' NOTE: If the compare range is located on another workbook
' or worksheet, use the following syntax.
' Loop through each cell in the selection and compare it to
' each cell in CompareRange.
For Each x In Selection
For Each y In CompareRange
If x = y Then x.Offset(0, 7) = x
Next y
Next x
End Sub

Preguntas similares