XL 2010 Griser une ligne sur deux sur x lignes (Avec un Grand Merci)

misteryann

XLDnaute Occasionnel
Bonsoir le Forum.

Je cherchais depuis un moment comment "griser" une ligne sur deux dans un tableau comportant 8 colonnes et x lignes (de 1 à 500 - 600). Mais rien...
Puis je me suis rappeler que l'on pouvait utiliser l'enregistreur de macro.

Les pros du VBA ne s'y tromperont pas et feront plus simple mais si cela peut aider les novices comme moi, tant mieux.

Après quelques tâtonnements et recherche sur l'internet pour connaître la dernière ligne vide ça donne cela :

Sub Macro9()
' en C1 j'ai mis la formule =MAX(SI(NON(ESTVIDE(A1:A1009));LIGNE(A1:A1009))) sous forme matricielle (validation par ctrl +maj+entrée)

Dim DerniereLigne As Integer
DerniereLigne = Range("G" & Sheets("Edition").Cells(1, 3)).End(xlUp).Row

Columns("A:H").Select

'centrage des cellules
With Selection
.HorizontalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With

Sheets("Edition").Activate
Range("A7:H" & Sheets("Edition").Cells(1, 3)).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$7:H" & Sheets("Edition").Cells(1, 3)), , xlYes).Name = "Tableau12"
Range("Tableau12[#All]").Select
ActiveSheet.ListObjects("Tableau12").TableStyle = "TableStyleLight1"

' dimensionnement des cellules
Columns("A:A").ColumnWidth = 30
Columns("C:C").ColumnWidth = 17
Columns("E:E").ColumnWidth = 26
Columns("D:D").EntireColumn.AutoFit
Columns("B:B").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Columns("G:G").EntireColumn.AutoFit
Columns("H:H").EntireColumn.AutoFit
End Sub

Mais pour tout avouer, je suis trop content d'avoir "créer" mon premier code en VBA :):):)
Par ailleurs si quelqu'un pouvait se pencher sur mon post sur le diagramme de GANT...

Bien cordialement.
Misteryann
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Mais si, comme je le suppose c'est parce qu'il y a des titres devant, pourquoi ne faites vous pas subir à la plage, avec ses titres, une mise sous forme de tableau ?
Outre que ça le fait alors automatiquement, ça peut faciliter bien d'autres choses.
Par exemple plus besoin de faire des End(xlUp) car on a directement le nombre de lignes par LOt.ListRows.Count, avec LOt: une variable ListObject qui représente le tableau.
 

Mexav

XLDnaute Nouveau
Mais si, comme je le suppose c'est parce qu'il y a des titres devant, pourquoi ne faites vous pas subir à la plage, avec ses titres, une mise sous forme de tableau ?
Outre que ça le fait alors automatiquement, ça peut faciliter bien d'autres choses.
Par exemple plus besoin de faire des End(xlUp) car on a directement le nombre de lignes par LOt.ListRows.Count, avec LOt: une variable ListObject qui représente le tableau.
Bonsoir Dranreb,
J'ai pu colorer les deux blocs A:E et L:Q, voir le code en pièce jointe, je dois fignoler les couleurs.
Je ne saisi pas bien votre conseil " pourquoi ne faites vous pas subir à la plage, avec ses titres, une mise sous forme de tableau ?", j'aurais besoin d'un exemple pour comprendre la marche à suivre.
Mais en attendant, j'ai obtenu ce que je souhaitais et cela fonctionne correctement, je vous en remercie chaleureusement. Mexav
 

Pièces jointes

  • Code des deux Blocs.txt
    1.9 KB · Affichages: 15

Dranreb

XLDnaute Barbatruc
C'est facile: vous sélectionnez une plage avec des titres, menu Accueil, groupe Styles, commande Mettre sous forme de tableau. Il vous propose de nombreux modèles à bandes horizontales alternées, et vous pouvez aussi vous en créer des personnalisés.
 

Mexav

XLDnaute Nouveau
Pour fignoler les couleurs vous pouvez vous servir de cette ressource.
Magnifique la ressource, bravo!
précédemment, l'on avait une formule pour connaître le numéro de la couleur affichée, sur Excel 365, cela ne semble plus être disponible, y aurait-il un autre moyen.?
soit =couleur(a1)
Pour le reste tout fonctionne comme je le souhaitais, bien merci encore.
Bon WE. Mexav
 

Dranreb

XLDnaute Barbatruc
Le CouleurCls.xlsm est pourvu d'une macro CapturePixel permettant de de trouver le code couleur de n'importe quel pixel, y compris du fond d'une cellule. Les valeurs RVB sont affichées, de même que code en hexa Long, et ce dernier est même copié dans le presse papier en vu d'un collage en VBA..
 

Mexav

XLDnaute Nouveau
Le CouleurCls.xlsm est pourvu d'une macro CapturePixel permettant de de trouver le code couleur de n'importe quel pixel, y compris du fond d'une cellule. Les valeurs RVB sont affichées, de même que code en hexa Long, et ce dernier est même copié dans le presse papier en vu d'un collage en VBA..
OK merci, je vais essayer de m'en servir au mieux.
Bien cordialement Mexav
 

Discussions similaires