Boa tarde,
Na adaptação que você fez do código, acredito que há um erro na seguinte linha:
Set Coluna1 = [AN5:AN41084]
Como a coluna a ser pesquisada é a da direita, acredito que o correto seria:
Set Coluna1 = [BQ5:BQ41084]
Provavelmente por este motivo a macro não funcionou.
Também acharia melhor definir o intervalo como [AN5] em vez de [BQ5] como você fez, apesar de que, talvez, funcione das duas maneiras.
Quanto ao ao algoritmo, entendi que a macro tinha que procurar sequencias de "1" na quantidade especificada, porém após a sua explicação, além disso a sequencia tem que terminar em "0".
Fiz um novo código para a sub "Azul", portanto é só adaptar para a "Vermelha":
Sub Azul()
Dim Intervalo As Range
Dim Coluna1 As Range
Dim Celula As Range
Dim k As Integer
Dim i As Integer
Dim QtdeVermelha As Integer
Dim QtdeAzul As Integer
Dim QtEnc As Integer
Application.ScreenUpdating = False
QtdeVermelha = [AM2].Value
QtdeAzul = [AM3].Value
Set Intervalo = [AN5:BQ41084]
Set Coluna1 = [BQ5:BQ41084]
With Intervalo.Font
.ColorIndex = 15
.Bold = False
End With
For Each Celula In Coluna1
Celula.Select
QtEnc = 0
While ActiveCell.Value = 1 And Not Application.Intersect(ActiveCell, Intervalo) Is Nothing
QtEnc = QtEnc + 1
ActiveCell.Offset(-1, -1).Select
Wend
If QtEnc = QtdeAzul Then
For i = 1 To QtdeAzul
ActiveCell.Offset(1, 1).Select
ActiveCell.Font.Color = vbBlue
ActiveCell.Font.Bold = True
Next
End If
Next
For Each Celula In Coluna1
Celula.Select
QtEnc = 0
While ActiveCell.Value = 1 And Not Application.Intersect(ActiveCell, Intervalo) Is Nothing
QtEnc = QtEnc + 1
ActiveCell.Offset(1, -1).Select
Wend
If QtEnc = QtdeVermelha Then
For i = 1 To QtdeVermelha
ActiveCell.Offset(-1, 1).Select
ActiveCell.Font.Color = vbRed
ActiveCell.Font.Bold = True
Next
End If
Next
End Sub
Abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 23/01/2012 12:07 pm