Hola Laufwerk, no entiendo bien que quieres hacer, pero si lo que quieres es pintar los registros de modo de "agruparlos por colores" pues aqui te paso un "pseudo-codigo" que lo he probado y de hecho funciona, da lo mismo lo que hagas con los datos de la columna dos (Col2), que los pintes que los guardes que los marques que los sumes tu haras con ellos lo que quieras, pero este ejemplo te da una idea clara de que hacer.
"Código del Bucle" Código PHP:
LastRecord = CurrentRecord
While CurrentRecord <> EOF
PaintCol 1
While CurrentRecord <> EOF And LastRecord = CurrentRecord
PaintCol 2
MoveNext
Wend
LastRecord = CurrentRecord
Wend
En todo caso si quieres ver funcionar ese bucle aquí te pego el código completo que es un macro de excel, debes poner los siguientes datos
(los números nada más) en las
columnas
A y
B de una hoja excel.
"Datos para la planilla Excel" Cita: A | B
--------
1 1
1 2
1 3
2 1
3 1
3 2
luego te vas a la seccion de macros
(Alt - F11) te creas un Modulo y pegas todo este código
"Código completo de los Bucles de Ejemplo para Macros de Excel" Código PHP:
Const Verde = 43
Const Naranjo = 44
Const EOF = ""
'
Global i As Integer
Global Alternar As Boolean
Sub Bucle()
'
Dim LastRecord As String
SetVariables
LastRecord = CurrentRecord
While CurrentRecord <> EOF
If LastRecord = CurrentRecord Then
PaintCol 1
PaintCol 2
Else
Alternar = Not Alternar
LastRecord = CurrentRecord
PaintCol 1
PaintCol 2
End If
MoveNext
Wend
End Sub
Sub Bucle2()
Dim LastRecord As String
SetVariables
LastRecord = CurrentRecord
While CurrentRecord <> EOF
PaintCol 1
While CurrentRecord <> EOF And LastRecord = CurrentRecord
PaintCol 2
MoveNext
Wend
LastRecord = CurrentRecord
Alternar = Not Alternar
Wend
End Sub
Private Sub MoveNext()
i = i + 1
Range("A" & i).Select
End Sub
Private Function CurrentRecord() As String
CurrentRecord = ActiveCell.FormulaR1C1
End Function
Private Sub PaintCol(col As Integer)
If col = 1 Then
Range("A" & i).Select
ElseIf col = 2 Then
Range("B" & i).Select
Else
GoTo Error
End If
With Selection.Interior
.ColorIndex = IIf(Alternar, Verde, Naranjo)
.Pattern = xlSolid
End With
Error:
End Sub
Private Sub SetVariables()
Alternar = True
i = 1
Range("A" & i).Select
End Sub
Luego te vuelves a Excel y ejecutas el Macro
(Alt-F8), encontraras DOS BUCLES, Bucle y Bucle2 hacen cosas diferentes, yo creo que el que a ti te va a servir es el Bucle2 que es el que de hecho te pegué aquí. El exceso de código que ves en funciones y subs los cree nada mas para usar "nombres de función" como MoveNext, CurrentRecord etc de modo que te resultara mas familiar de entender que la terrible notación que tiene excel.
Espero que te sirva y cualquier duda que tengas me avisas!!
Saludos