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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 gongi
14/05/2010 - 09:28 | Informe spam
On 14 mayo, 02:50, "Héctor Miguel"
wrote:
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




¡ pERFECTO !

Gracias Maestro , como siempre
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida