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 originalOption Explicit
' ----------------------------------------------------------------------------------------------
' \\ -- Descripción : Alternar color por Filas en Flexgrid
' -- Autor : Luciano Lodola -- http://www.recursosvisualbasic.com.ar/
' ----------------------------------------------------------------------------------------------
' ----------------------------------------------------------------------------------------------
Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
Private Declare Sub InitCommonControls Lib "Comctl32" ()
' ----------------------------------------------------------------------------------------------
' \\ -- Descripción : Alternar color por Filas en Flexgrid
' -- Autor : Luciano Lodola -- http://www.recursosvisualbasic.com.ar/
' ----------------------------------------------------------------------------------------------
' ----------------------------------------------------------------------------------------------
Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
Private Declare Sub InitCommonControls Lib "Comctl32" ()
' --------------------------------------------------------------------------------------------
' \\ -- Función para Colorear por Filas
' --------------------------------------------------------------------------------------------
Private Sub pvSetColors(objFlexgrid As Object, ByVal lColor1 As Long, ByVal lColor2 As Long)
Dim iRow As Long
Dim iCol As Integer
Dim lCurrentColor As Long
With objFlexgrid
' -- Desahbilitar el repintado del control para agilizar el trabajo
.Redraw = False
.BackColor = lColor1
' -- Recorrer las filas
For iRow = 0 To .Rows - 1 Step 2
' -- Establecer la Fila actual del flex
.Row = iRow
' -- Recorre por columna y le aplica el color a la celda indicada de la fila actual
For iCol = 0 To .Cols - 1
.Col = iCol
.CellBackColor = lColor2
Next
Next
' -- Reestablecer la propiedad Redraw para poder refrescar el control
.Redraw = True
End With
End Sub
' --------------------------------------------------------------------------------------------
' \\ -- Función para Colorear por Filas
' --------------------------------------------------------------------------------------------
Private Sub pvSetColors(objFlexgrid As Object, ByVal lColor1 As Long, ByVal lColor2 As Long)
Dim iRow As Long
Dim iCol As Integer
Dim lCurrentColor As Long
With objFlexgrid
' -- Desahbilitar el repintado del control para agilizar el trabajo
.Redraw = False
.BackColor = lColor1
' -- Recorrer las filas
For iRow = 0 To .Rows - 1 Step 2
' -- Establecer la Fila actual del flex
.Row = iRow
' -- Recorre por columna y le aplica el color a la celda indicada de la fila actual
For iCol = 0 To .Cols - 1
.Col = iCol
.CellBackColor = lColor2
Next
Next
' -- Reestablecer la propiedad Redraw para poder refrescar el control
.Redraw = True
End With
End Sub
Private Sub pvSetColors2(objFlexgrid As Object, ByVal lColor1 As Long, ByVal lColor2 As Long)
Dim iRow As Long
Dim iCol As Integer
Dim lCurrentColor As Long
With objFlexgrid
' -- Desahbilitar el repintado del control para agilizar el trabajo
.Redraw = False
.BackColor = lColor1
.Row = 6
' -- Recorre por columna y le aplica el color a la celda indicada de la fila actual
For iCol = 0 To .Cols - 1
.Col = iCol
.CellBackColor = lColor2
Next
' -- Reestablecer la propiedad Redraw para poder refrescar el control
.Redraw = True
End With
End Sub
Private Sub Form_Load()
Call pvSetColors(MSFlexGrid1, RGB(255, 255, 203), RGB(255, 255, 255))
semana_C = Format(Date, "WW")
lbl_nrsemana = semana_C
End Sub