Buenas tardes como están... Tengo una macro que compara diferencias entre 2 hojas
La macro compara las diferencias entre las 2 hojas y copia las diferencia en una tercera. Y trabaja bien con 30 o 40 lineas pero necesito que compare unas 900 o 1000 lineas, Otra cosa esta macro tiene una hoja ( hoja 1 como master) y importa datos de otra hoja.
La Utilizo para habilitar al personal que se encuentra asistente... Aquí les dejo el código...
Option Explicit
Dim fila1 As Integer, fila2 As Integer
Dim marcador As Integer
Dim i
Sub compara()
fila1 = 2
fila2 = 2
'esta recorre la hoja1
While Sheets(1).Cells(fila1, 1) <> ""
'esta recorre la hoja2
While Sheets(2).Cells(fila2, 1).Value <> "" And marcador = 0
'compara las 8 col o más
If Hoja1.Cells(fila1, 1) = Hoja2.Cells(fila2, 1) Then
'R = MsgBox("La asistencia que va a cargar no corresponde al día de hoy, ¿Desea Continuar?", vbYesNo, "FECHA DE CARGA")
'en tu caso pintará la fila activa de hoja1, ajustá el nro de color
Sheets(1).Cells(fila1, 1).EntireRow.Interior.ColorIndex = 3
marcador = 1
Else
fila2 = fila2 + 1
End If
Wend
fila1 = fila1 + 1
fila2 = 2 'indica la primer fila de la hoja2
marcador = 0
Wend
color
End Sub
Sub color()
'--Copiaremos todas las celdas que no tienen color a la hoja3
Dim k, k1, k3 As Integer
Hoja1.Select
Range("A2").Select
k1 = ActiveCell.Row
For i = 2 To 1000
Sheets(1).Select
If Range("A" & k1).Interior.ColorIndex <> 3 Then
Rows(k1).Select
Selection.Copy
Sheets(3).Select
k3 = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
Rows(k3).Select
ActiveSheet.Paste
End If
k1 = k1 + 1
Next i
Limpiar
End Sub
Sub Limpiar()
Hoja1.Select
Rows("2:1000").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A1").Select
End Sub