Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2010, 08:02
Avatar de XYON126
XYON126
 
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años
Puntos: 0
Color de lineas y columnas en msflexgrid

Hola!

Tengo una consultilla, he encontrado un codigo en el cual me especifica el color de las columnas y de las filas de un msflexgrid (siempre fijos), en cambio yo lo que necesito es que la ultima fila los colores de las celdas no sean todos iguales sino alternativos ejemplo por celda .: blanco, rosa, blanco, rosa, blanco, rosa, etc. y este codigo lo unico que me hace es que todas las filas sean o amarillo o blanco de color unico (No como un tablero de ajedrez solo la ultima fila) Ah! Tengo un número de filas y columnas fijo siendo 7 y 7. ¿Como podria variarlo? por otro lado os remito el codigo pero podriais explicarme lo que hace y donde pues si lo copio nada mas lo unico que realizo es copy/paste y no aprendo.

Muchas gracias por adelantado.

codigo:
Código vb:
Ver original
  1. Option Explicit
  2.  
  3. ' ----------------------------------------------------------------------------------------------
  4.  ' \\ -- Descripción : Alternar color por Filas en Flexgrid
  5.  '    -- Autor       : Luciano Lodola -- http://www.recursosvisualbasic.com.ar/
  6.  ' ----------------------------------------------------------------------------------------------
  7.  ' ----------------------------------------------------------------------------------------------
  8.  
  9.   Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
  10.   Private Declare Sub InitCommonControls Lib "Comctl32" ()
  11. ' ----------------------------------------------------------------------------------------------
  12.  ' \\ -- Descripción : Alternar color por Filas en Flexgrid
  13.  '    -- Autor       : Luciano Lodola -- http://www.recursosvisualbasic.com.ar/
  14.  ' ----------------------------------------------------------------------------------------------
  15.  ' ----------------------------------------------------------------------------------------------
  16.  
  17.   Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
  18.   Private Declare Sub InitCommonControls Lib "Comctl32" ()
  19.  
  20.  
  21.  
  22. ' --------------------------------------------------------------------------------------------
  23. ' \\ -- Función para Colorear por Filas
  24.  ' --------------------------------------------------------------------------------------------
  25.  Private Sub pvSetColors(objFlexgrid As Object, ByVal lColor1 As Long, ByVal lColor2 As Long)
  26.       Dim iRow            As Long
  27.       Dim iCol            As Integer
  28.       Dim lCurrentColor   As Long
  29.  
  30.       With objFlexgrid
  31.       ' -- Desahbilitar el repintado del control para agilizar el trabajo
  32.          .Redraw = False
  33.           .BackColor = lColor1
  34.           ' -- Recorrer las filas
  35.          For iRow = 0 To .Rows - 1 Step 2
  36.               ' -- Establecer la Fila actual del flex
  37.              .Row = iRow
  38.               ' -- Recorre por columna y le aplica el color a la celda indicada de la fila actual
  39.              For iCol = 0 To .Cols - 1
  40.                   .Col = iCol
  41.                   .CellBackColor = lColor2
  42.               Next
  43.           Next
  44.           ' -- Reestablecer la propiedad Redraw para poder refrescar el control
  45.          .Redraw = True
  46.       End With
  47.   End Sub
  48.  
  49.  
  50. ' --------------------------------------------------------------------------------------------
  51. ' \\ -- Función para Colorear por Filas
  52.  ' --------------------------------------------------------------------------------------------
  53.  Private Sub pvSetColors(objFlexgrid As Object, ByVal lColor1 As Long, ByVal lColor2 As Long)
  54.       Dim iRow            As Long
  55.       Dim iCol            As Integer
  56.       Dim lCurrentColor   As Long
  57.  
  58.       With objFlexgrid
  59.       ' -- Desahbilitar el repintado del control para agilizar el trabajo
  60.          .Redraw = False
  61.           .BackColor = lColor1
  62.           ' -- Recorrer las filas
  63.          For iRow = 0 To .Rows - 1 Step 2
  64.               ' -- Establecer la Fila actual del flex
  65.              .Row = iRow
  66.               ' -- Recorre por columna y le aplica el color a la celda indicada de la fila actual
  67.              For iCol = 0 To .Cols - 1
  68.                   .Col = iCol
  69.                   .CellBackColor = lColor2
  70.               Next
  71.           Next
  72.           ' -- Reestablecer la propiedad Redraw para poder refrescar el control
  73.          .Redraw = True
  74.       End With
  75.   End Sub
  76.   Private Sub pvSetColors2(objFlexgrid As Object, ByVal lColor1 As Long, ByVal lColor2 As Long)
  77.       Dim iRow            As Long
  78.       Dim iCol            As Integer
  79.       Dim lCurrentColor   As Long
  80.  
  81.       With objFlexgrid
  82.       ' -- Desahbilitar el repintado del control para agilizar el trabajo
  83.          .Redraw = False
  84.           .BackColor = lColor1
  85.                   .Row = 6
  86.               ' -- Recorre por columna y le aplica el color a la celda indicada de la fila actual
  87.              For iCol = 0 To .Cols - 1
  88.                   .Col = iCol
  89.                   .CellBackColor = lColor2
  90.            Next
  91.           ' -- Reestablecer la propiedad Redraw para poder refrescar el control
  92.          .Redraw = True
  93.       End With
  94.   End Sub
  95.  
  96. Private Sub Form_Load()
  97.  
  98. Call pvSetColors(MSFlexGrid1, RGB(255, 255, 203), RGB(255, 255, 255))
  99.  
  100. semana_C = Format(Date, "WW")
  101. lbl_nrsemana = semana_C
  102.  
  103. End Sub