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
