ME PUEDEN AYUDAR A MEJORAR LA SIGUIENTE MACROS...... YA QUE SI BIEN ENTREGA EL RESULTADO... ES MUY LENTA.... LA IDEA ES DETECTAR LOS REGISTROS QUE SE REPITEN ENTRE LAS COLUMNAS A Y B :
Sub conciliacion()
Dim conta As Integer
Dim veces As Integer
Dim fila As Integer
Dim col As Integer
Dim valor1 As Variant
veces = 1
While veces < 3
If veces = 1 Then
col = 4
Range("A2").Select
Else
col = 7
Range("B2").Select
End If
fila = 2
conta = 1
valor1 = ActiveCell.Value
While ActiveCell.Value <> 0
If ActiveCell.Offset(1, 0).Value <> valor1 Then
Cells(fila, col).Value = valor1
Cells(fila, col + 1).Value = conta
fila = fila + 1
ActiveCell.Offset(1, 0).Select
valor1 = ActiveCell.Value
conta = 1
Else
conta = conta + 1
ActiveCell.Offset(1, 0).Select
End If
Wend
veces = veces + 1
Wend
'RUTINA QUE EVALUA LAS DIFERENCIAS (se debe ajustar el rango que en el ejemplo va de F2 a F13 y en la segunda va de I2 a I13)
HOLA A TODOS...
ME PUEDEN AYUDAR A MEJORAR LA SIGUIENTE MACROS...... YA QUE SI BIEN ENTREGA EL RESULTADO... ES MUY LENTA.... LA IDEA ES DETECTAR LOS REGISTROS QUE SE REPITEN ENTRE LAS COLUMNAS A Y B :
Sub conciliacion()
Dim conta As Integer
Dim veces As Integer
Dim fila As Integer
Dim col As Integer
Dim valor1 As Variant
veces = 1
While veces < 3
If veces = 1 Then
col = 4
Range("A2").Select
Else
col = 7
Range("B2").Select
End If
fila = 2
conta = 1
valor1 = ActiveCell.Value
While ActiveCell.Value <> 0
If ActiveCell.Offset(1, 0).Value <> valor1 Then
Cells(fila, col).Value = valor1
Cells(fila, col + 1).Value = conta
fila = fila + 1
ActiveCell.Offset(1, 0).Select
valor1 = ActiveCell.Value
conta = 1
Else
conta = conta + 1
ActiveCell.Offset(1, 0).Select
End If
Wend
veces = veces + 1
Wend
'RUTINA QUE EVALUA LAS DIFERENCIAS (se debe ajustar el rango que en el ejemplo va de F2 a F13 y en la segunda va de I2 a I13)
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=+IF(ISNA(VLOOKUP(RC[-2],R2C7:R13C8,2,FALSE)),0,VLOOKUP(RC[-2],R2C7:R13C8,2,FALSE))"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F13"), Type:=xlFillDefault
Range("F2:F13").Select
Range("I2").Select
ActiveCell.FormulaR1C1 = _
"=+IF(ISNA(VLOOKUP(RC[-2],R2C4:R13C5,2,FALSE)),0,VLOOKUP(RC[-2],R2C4:R13C5,2,FALSE))"
Range("I2").Select
Selection.AutoFill Destination:=Range("I2:I13"), Type:=xlFillDefault
Range("I2:I13").Select
End Sub
MUCHAS GRACIAS.
JUAN IGNACIO