Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA colorier 5 lignes sur 7

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Regueiro

XLDnaute Impliqué
Bonsoir à Tous
Je n'arrive pas résoudre mon problème.
A l'aide de cette macro je selectionne un range.
Et j'aimerais colorier 5 lignes, 2 non, 5 lignes oui, etc
Je vous joint mon code.
Merci.
A+
 
Re : VBA colorier 5 lignes sur 7

Bonsoir,

On peut le faire par MFC,
avec cette formule,
Code:
=MOD(LIGNES($2:2)-1;7)<5

Ou bien du fait que tu es sur Excel2010, tu peux profiter de l'Outil Tableau...
Taille de rayure de première rangée ==> 5
Taille de rayure de deuxième rangée ==> 2

@ +
 
Re : VBA colorier 5 lignes sur 7

Salut le forum

Essaye ceci
Code:
Sub ColorUnSurcinq()
'Colorier 5 lignes sur 7

    Dim Cel As Range
    Dim r As Range

    Set r = Application.InputBox("Sélectionner une plage", "SÉLECTION", Type:=8)

    For Each Cel In r
        If (Cel.Row - r.Cells(1).Row) Mod 7 < 5 Then
            Cel.Interior.ColorIndex = 6
        End If
    Next Cel

    Set r = Nothing

End Sub
Mytå
 
Re : VBA colorier 5 lignes sur 7

Bonsoir.
Merci à tous les 2.
Rachid ta MFC marche parfaitement.
Mais je préfère le code de myta qui est correspond à mon souhait par VBA
Merci Encore
Bonne soirée
 
Re : VBA colorier 5 lignes sur 7

Bonjour Regueiro, R@chid, Mytå, le forum,

Sur une très grande plage la coloration des cellules une par une risque d'être laborieuse.

Ce code crée (ou efface) une Mise en forme conditionnelle (MFC) :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'une plage doit avoir été sélectionnée
If Target.Count = 1 Then Exit Sub
Dim n As Long
n = MsgBox("Cliquer sur Oui pour colorer, Non pour effacer...", 3, "Mise en forme conditionnelle")
If n = 2 Then Exit Sub
With Selection.FormatConditions 'MFC
  .Delete
  If n = 7 Then Exit Sub
  n = Selection.Row
  Cells(1, Columns.Count).Formula = "=MOD(ROWS($" & n & ":" & n & ")-1,7)<5"
  .Add xlExpression, , Cells(1, Columns.Count).FormulaLocal 'change avec la version Excel
  Cells(1, Columns.Count) = ""
  .Item(1).Interior.ColorIndex = 6
End With
End Sub
Il est à placer bien sûr dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).

A+
 
Re : VBA colorier 5 lignes sur 7

Re,

Pour que la cellule active soit bien la 1ère cellule de la plage sélectionnée :

Code:
Selection(1).Activate
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'une plage doit avoir été sélectionnée
If Target.Count = 1 Then Exit Sub
Dim n As Long
n = MsgBox("Cliquer sur Oui pour colorer, Non pour effacer...", 3, "Mise en forme conditionnelle")
If n = 2 Then Exit Sub
With Selection.FormatConditions 'MFC
  .Delete
  If n = 7 Then Exit Sub
  n = Selection.Row
  Selection(1).Activate
  Cells(1, Columns.Count).Formula = "=MOD(ROWS($" & n & ":" & n & ")-1,7)<5"
  .Add xlExpression, , Cells(1, Columns.Count).FormulaLocal 'change avec la version Excel
  Cells(1, Columns.Count) = ""
  .Item(1).Interior.ColorIndex = 6
End With
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
908
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…