Foros del Web » Soporte técnico » Ofimática »

VBA comparar dos columnas y con colores ?

Estas en el tema de VBA comparar dos columnas y con colores ? en el foro de Ofimática en Foros del Web. Aca tengo un ejemplo, la columna puede tener N filas, la idea es que la columna Estado, puede clasificar si son iguales o no lo ...
  #1 (permalink)  
Antiguo 25/04/2011, 17:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 432
Antigüedad: 14 años, 1 mes
Puntos: 11
VBA comparar dos columnas y con colores ?

Aca tengo un ejemplo, la columna puede tener N filas, la idea es que la columna Estado, puede clasificar si son iguales o no lo son.




Código Excel:
Ver original
  1. if(Columna_1 == Columna2 ){
  2. Item.Text = "Bien"
  3. ActiveWorkbook.Colors(40) = RGB(234, 234, 234)
  4. }
  5. else
  6. {
  7. Item.Text = "Mal"
  8. }


Code Source: bajar aqui
__________________
Libro de HTML 5 + codigo fuente bajar aqui.
  #2 (permalink)  
Antiguo 25/04/2011, 23:29
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
VBA comparar dos columnas y con colores ?

Hola! tazzwt
Siempre que sea posible, hay que "escaparle" a los métodos iterativos como el que muestras pues son muy ineficientes.

Una alternativa podría ser el siguiente
Código:
Sub Clasificador()
Dim LRow As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ActiveSheet.AutoFilterMode = False
LRow = [b1].End(xlDown).Row
Range("C2:C" & LRow).Delete xlShiftUp
With Range("C2:C" & LRow)
  .Value = Evaluate("IF(A2:A" & LRow & "=B2:B" & LRow & ", ""Bien"", ""Mal"")")
  Union([C1], .Cells).AutoFilter 1, "Bien"
  .Font.Color = RGB(0, 176, 240)
  Union([C1], .Cells).AutoFilter 1, "Mal"
  .Font.Color = RGB(255, 0, 0)
End With
ActiveSheet.AutoFilterMode = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Saludos, Cacho.

Última edición por mrocf; 25/04/2011 a las 23:40

Etiquetas: colores, columnas, vba
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:32.