Bon alors pour ceux qui seraient intéressés, le code est celui ci:
Sub Solution()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim W As Single
i = 0
j = 0
k = 0
For i = 12 To 20 'analyse les lignes de 1 a 20
If Worksheets("Gantt" ).Cells(i, "A" ).Interior.ColorIndex = Worksheets("Gantt" ).Range("A5" ).Interior.ColorIndex Then
'vérifie la concordance de couleur entre les 2 cellules
For j = 9 To 248 'si concordance il y a il analyse les 239 colonnes de cette ligne
If Cells(j, i).Interior.ColorIndex <> Range("A12" ).Interior.ColorIndex Then 'si la couleur de la cellule est differente de celle de reference alors
Do While Cells(j + 1, i).Interior.ColorIndex = Cells(j, i).Interior.ColorIndex
k = k + 1
Loop 'on compte le nombre de cellule différentes a la suite
W = Cells(j, i).Width * k
With ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, Cells(j, i).Left, Cells(j, i).Offset(1, 0).Top, W, Cells(j, i).Height)
With .Fill
.ForeColor.RGB = RGB(128, 128, 0)
.Transparency = 0.5
End With
With .Line.DashStyle = msoLineDashDot
End With
End With
On dessine ensuite dans la ligne du dessous de la cellule a la couleur différente de la couleur de référence un objet rectangle a bord ronds
k = 0
End If
Next j
End If
Next i
End Sub
En espérant que ça pourra aider certain d'entre vous, je teste en ce moment mon code... qui ne marche pas! gros problème avec ce fichu .Interior.ColorIndex, je sais pas pourquoi il plante
Message édité par Tiret2 le 15-06-2012 à 11:47:45