Couleurs colonnes pour mise en forme

Bonjour,

Suite à une question posée hier sur un programme, je voudrai aujourd'hui pouvoir faire une mise en forme plus sympa pour une présentation.

Voici le code de mon programme :

Sub RéorgTablo()
    Dim d As Object, T(), k, itm, n%, i%, j%, v%, w%
    Set d = CreateObject("Scripting.Dictionary")
    With Worksheets("Board")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 4 To n
            If InStr(.Cells(i, 6), Chr(10)) > 0 Then
                k = Split(.Cells(i, 6), Chr(10))
                For j = 0 To UBound(k)
                    If d.exists(k(j)) Then
                        d(k(j)) = d(k(j)) & ";" & .Cells(i, 1) & ";" & .Cells(i, 4)
                    Else
                        d(k(j)) = .Cells(i, 1) & ";" & .Cells(i, 4)
                    End If
                    v = UBound(Split(d(k(j)), ";"))
                    If v > w Then w = v
                Next j
            Else
                k = .Cells(i, 6)
                If d.exists(k) Then
                    d(k) = d(k) & ";" & .Cells(i, 1) & ";" & .Cells(i, 4)
                Else
                    d(k) = .Cells(i, 1) & ";" & .Cells(i, 4)
                End If
                v = UBound(Split(d(k), ";"))
                If v > w Then w = v
            End If
        Next i
    End With
    ReDim T(d.Count, w + 1): n = 0
    For Each k In d.keys
        n = n + 1: T(n, 0) = k
        itm = Split(d(k), ";")
        For i = 0 To UBound(itm)
            T(n, i + 1) = itm(i)
        Next i
    Next k
    T(0, 0) = "Part Number": v = 0
    For i = 1 To w + 1 Step 2
        v = v + 1: T(0, i) = "N°" & v: T(0, i + 1) = "Idea " & v
    Next i
    With Worksheets("Part Number").Range("A1")
        With .CurrentRegion
            .ClearContents
            .Interior.ColorIndex = xlColorIndexNone
            .Borders.LineStyle = xlLineStyleNone
        End With
        With .Resize(UBound(T, 1) + 1, UBound(T, 2) + 1)
            .Value = T
            With .Borders
                .LineStyle = xlContinuous: Weight = xlThin
            End With
[color=#FF0000]            .Rows(1).Interior.Color = RGB(50, 50, 50) 'Couleur première ligne'
            .Rows(1).Font.Color = RGB(255, 255, 255) 'Couleur texte première ligne'
            .Range("A2:A92").Interior.Color = RGB(217, 217, 217)
            .Range("B2:B92").Interior.Color = RGB(230, 230, 230)
            .Range("D2:D92").Interior.Color = RGB(230, 230, 230)
            .Range("F2:F92").Interior.Color = RGB(230, 230, 230)
            .Range("H2:H92").Interior.Color = RGB(230, 230, 230)
            .Range("J2:J92").Interior.Color = RGB(230, 230, 230)
            .Range("L2:L92").Interior.Color = RGB(230, 230, 230)
            .Range("N2:N92").Interior.Color = RGB(230, 230, 230)
            .Range("P2:P92").Interior.Color = RGB(230, 230, 230)[/color]
        End With
        .Worksheet.Activate
    End With
End Sub

J'aimerai automatiser la partie en rouge pour qu'une colonne sur 2 soit grise mais que sur les colonnes ou il y a du texte. Et j'aimerai aussi que le nombre de ligne s'automatise, en partant de la seconde jusqu'à la dernière remplie.

Je met un petit Excel témoin pour montrer ce que je voudrai.

Merci d'avance pour votre aide.

FloBru

Bonjour,

avez-vous essayez en transformant votre plage de données en tableau Excel ?

En effet, une fois fait Excel vous propose des options de mise en forme du tableau :

colonne en couleur

@ bientôt

LouReeD

Bonjour,

Merci beaucoup, ca fonctionne bien pour la mise en page, merci mais il me faut tester si d'autres colonnes s'ajoutent si ca fonctionne.

En tout cas merci beaucoup

FloBru

Bonjour,

si la colonne "touche" le reste du tableau, alors elle sera automatiquement intégrée au tableau est elle "subira" le même type de traitement au niveau des mise en formes.

@ bientôt

LouReeD

Rechercher des sujets similaires à "couleurs colonnes mise forme"