Excel VBA ajouter une bordure, si la cellule active sur certains ligne

Je suis en train d'écrire VBA pour un Diagramme de Gantt feuille de calcul.

J'ai 3 mois de dates sur la ligne 5 et je peux définir la date de début par la saisie d'une date dans une cellule qui met à jour l'ensemble de la feuille.

J'ai une plage de cellules de mon tableau L6:CZ42. Pour cette gamme, si la cellule de la ligne 5 est le 1er du mois, chaque cellule de cette colonne aura un gris parsemé de bordure gauche et rien à droite. Cela fonctionne de la façon dont je le veux.

Le problème est qu'il ajoute une bordure grise en haut et en bas de la cellule qui est OK pour les lignes 7 à 41, mais avec la ligne 6 je veux un noir au-dessus de la frontière et pour la ligne 42 je veux un fond noir de la frontière.

J'ai ajouté cette section de code d'essayer de régler ce problème, mais la syntaxe est incorrecte vérifier si il est sur la ligne 6

' If this is the first row (6) in the range then
' add a black continuous border to the top
If Cells(6, i) Then
    With .Borders(xlEdgeTop)
        .ColorIndex = 1
        .Weight = xlThin
        .LineStyle = xlContinuos
    End With
End If

C'est tout mon code

Sub Worksheet_Change(ByVal Target As Range)

Dim i As Long
Dim CuDate As Date


For i = 12 To 104
CuDate = Cells(5, i).Value

' Are we on the 1st day of the month
If Day(CuDate) = 1 Then
    With Range(Cells(6, i), Cells(42, i))
        ' If this is the first row (6) in the range then
        ' add a black continuous border to the top
        If Cells(6, i) Then
            With .Borders(xlEdgeTop)
                .ColorIndex = 1
                .Weight = xlThin
                .LineStyle = xlContinuos
            End With
        End If

        With .Borders(xlEdgeLeft)
            .ColorIndex = 15
            .Weight = xlThin
            .LineStyle = xlDot
        End With
        With .Borders(xlEdgeRight)
            .LineStyle = xlLineStyleNone
        End With
    End With
Else
    With Range(Cells(6, i), Cells(42, i))
        ' If this is the last row (42) in the range then
        ' add a black continuous border to the bottom
        If Cells(42, i) Then
            With .Borders(xlEdgeBottom)
                .ColorIndex = 1
                .Weight = xlThin
                .LineStyle = xlContinuos
            End With
        End If

        With .Borders(xlEdgeLeft)
            .LineStyle = xlLineStyleNone
        End With
        With .Borders(xlEdgeRight)
            .LineStyle = xlLineStyleNone
        End With
    End With
End If

Next
End Sub
InformationsquelleAutor AdRock | 2012-05-23