Comparar A1 "hoja1" con A1 "hoja2" de archivo adjunto vba
Tengo desarrollado un código, que probablemente se pueda depurar y simplificar, que hasta ahora hace lo que quiero.
Sub comparar() Dim celda1 As Integer Dim celda2 As Integer 'Dim filalibre As Integer 'El programa recorre por filas específicas i verifica que estas no contengan 0 o esten vacías 'De lo contrario oculta esas filas 'Luego compara cliente con cliente y cuando son iguales, compara sus cantidades 'Cuando las cantidades son iguales verde, si no rojo inicioFor1 = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row 'Ultima fila con datos de columna A de Hoja1 inicioFor2 = Sheets("Hoja2").Range("A" & Rows.Count).End(xlUp).Row 'Ultima fila con datos de columna A de Hoja2 celda1 = Sheets("Hoja1").Range("A1").End(xlUp).Row + 1 'Primera fila con datos de columna A de Hoja1 despues de Cliente celda2 = Sheets("Hoja2").Range("A1").End(xlUp).Row + 1 'Primera fila con datos de columna A de Hoja2 despues de Cliente Sheets("Hoja1").Select For a = celda1 To inicioFor1 'Primero limpiar los vacios y los cero If Cells(a, 1) = 0 Or Cells(a, 1) = "" Then Rows(a).Select Selection.EntireRow.Hidden = True ElseIf Cells(a, 1) <> " " Then Rows(a).Select Selection.EntireRow.Hidden = False If ActiveCell = ActiveCell.Offset(0, 4) Then If ActiveCell.Offset(0, 1) = ActiveCell.Offset(0, 5) Then ActiveCell.Offset(0, 5).Select ActiveCell.Font.Color = RGB(0, 150, 0) End If ActiveCell.Offset(0, 5).Select ActiveCell.Font.Color = RGB(255, 0, 0) End If End If Next 'Cambio de página para Primero limpiar los vacios y los cero Sheets("Hoja2").Select For b = celda2 To inicioFor2 If Cells(b, 1) = 0 Or Cells(b, 1) = "" Then Rows(b).Select Selection.EntireRow.Hidden = True ElseIf Cells(b, 1) <> " " Then Rows(b).Select Selection.EntireRow.Hidden = False End If Next Cells(1, 1).Select While ActiveCell.Value = "" Or ActiveCell.Value = "Cliente" ActiveCell.Offset(1, 0).Select Wend 'Vuelvo a la Hoja1 ActiveWorkbook.Sheets(1).Activate Cells(1, 1).Select 'el control se hará sobre la columna A, a partir de la fila While ActiveCell.Value = "" Or ActiveCell.Value = "Cliente" ActiveCell.Offset(1, 0).Select 'si la celda contiene datos, pasa a la fila siguiente Wend 'filalibre = ActiveCell.Row 'guarda en la variable filalibre el número de la primer fila sin datos. 'A partir de aquí comparo entre hojas ' '? ' End Sub
El código adjunto muestra la comparativa entre columnas de "Hoja1"y quiero hacer lo mismo pero entre hojas distintas.
Y la verdad que cuanto más lo toco menos funciona.
¿Me podéis ayudar?
El archivo es las practicas para luego aplicarlo al archivo verdadero una vez tenga claro los conceptos.
En Excel tengo
1 Respuesta
Respuesta de Dante Amor
1