Prueba la siguiente macro, el resultado quedará a partir de la columna I.
Sub Eliminar_Duplicados_Con_Condiciones_v1()
Dim a As Variant, b As Variant
Dim dic1 As Scripting.Dictionary, dic2 As Scripting.Dictionary
Dim sh1 As Worksheet
Dim llave1 As String, llave2 As String, datos As String, datos2 As String
Dim i As Long, j As Long, n As Double, m As Double
Set dic1 = New Scripting.Dictionary
Set dic2 = New Scripting.Dictionary
Set sh1 = Sheets("VH")
sh1.Range("I:N").ClearContents
a = sh1.Range("B2", sh1.Range("G" & Rows.Count).End(3)).Value
'1)COLOR 2)INTERNO_DE 3)CLASE_DEMA 4)COUNT_AREA 5)SUM_AREA 6)SUM_LENGTH
For i = 1 To UBound(a, 1)
llave1 = a(i, 2)
llave2 = a(i, 1) & "|" & a(i, 2)
datos = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 4) & "|" & a(i, 5) & "|" & a(i, 6)
If a(i, 1) <> 256 Then
dic1(llave1) = datos
dic2(llave2) = datos
End If
Next
For i = 1 To UBound(a, 1)
llave1 = a(i, 2)
llave2 = a(i, 1) & "|" & a(i, 2)
datos = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 4) & "|" & a(i, 5) & "|" & a(i, 6)
If a(i, 1) = 256 Then
If dic1.Exists(llave1) Then
Select Case a(i, 3)
Case "PCC"
'Nada
Case "PCP", "PE"
'Nada
Case "PSP47A"
'**En la condicion No. 1 en el caso de que la
'CLASE_DEMA sea igual a PSP47A y el valor del SUM_AREA
'asociado a la fila del COLOR 256 sea mayor al otro valor repetido,
'no se deben eliminar ninguno de los dos valores.
n = Split(dic1(llave1), "|")(4)
If a(i, 5) > Split(dic1(llave1), "|")(4) Then
dic2(llave2) = datos
End If
Case "RPA"
'Si los valores de la columna INTERNO_DE estan duplicados 2 veces
'y los valores de la columna CLASE_DEMA son igual a RPA,
'se deben sumar las cantidades de la columna COUNT_AREA
'y eliminar la fila asociada al valor 256 de la columna COLOR,
'quedando solo un registro unico y consolidado.
If Split(dic1(llave1), "|")(2) = "RPA" Then
n = Split(dic1(llave1), "|")(3)
If n = a(i, 4) And n > 9 Then
'**En la condicion No. 3 en el caso de que el valor de
'COUNT_AREA sea igual en ambas filas duplicadas y este valor
'mayor a 9, solo se debe eliminar la fila asociada al valor 256
'de la columna COLOR sin sumar la cantidad, quedando solo un registro unico.
'Nada
Else
m = n + a(i, 4)
datos2 = ""
For j = 0 To 5
If j = 3 Then
datos2 = datos2 & m & "|"
Else
datos2 = datos2 & Split(dic1(llave1), "|")(j) & "|"
End If
Next
llave2 = Split(dic1(llave1), "|")(0) & "|" & Split(dic1(llave1), "|")(1)
dic2(llave2) = Left(datos2, Len(datos2) - 1)
End If
End If
Case "RV", "RE"
'4. Si los valores de la columna INTERNO_DE estan duplicados 2 veces
'y los valores de la columna CLASE_DEMA son igual a RV, RE,
'se deben sumar las cantidades de la columna SUM_AREA
'y eliminar la fila asociada al valor 256 de la columna COLOR,
'quedando solo un registro unico y consolidado.
Select Case Split(dic1(llave1), "|")(2)
Case "RV", "RE"
n = Split(dic1(llave1), "|")(4)
m = n + a(i, 5)
datos2 = ""
For j = 0 To 5
If j = 4 Then
datos2 = datos2 & m & "|"
Else
datos2 = datos2 & Split(dic1(llave1), "|")(j) & "|"
End If
Next
llave2 = Split(dic1(llave1), "|")(0) & "|" & Split(dic1(llave1), "|")(1)
dic2(llave2) = Left(datos2, Len(datos2) - 1)
End Select
Case Else
dic1(llave1) = datos
dic2(llave2) = datos
End Select
Else
dic1(llave1) = datos
dic2(llave2) = datos
End If
End If
Next
Sh1. Range("I2"). Resize(dic2. Count).Value = Application. Transpose(dic2. Items)
Sh1. Range("I2", sh1.Range("I" & Rows. Count).End(3)). TextToColumns sh1.Range("I2"), _
XlDelimited, xlNone, False, False, False, False, False, True, "|"
End Sub