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,
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