Saltar al contenido

Macros.... Mejorar tiempos....


Recommended Posts

publicado

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

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.