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 !

OlivGM

XLDnaute Occasionnel
Bonsoir,

Je voudrais colorier mon tableau tel que montré dans mon petit exemple joint.
Il y a environ 500 lignes pour info.

Merci et bonne soirée
 

Pièces jointes

Bonjour,

met ta couleur d'extrémités voulue en BF1 et :
VB:
Sub colore()
    Dim pl As Range, pl2 As Range, lig As Long
    Dim nbMin As Long, coul1 As Long, coul2 As Long
    nbMin = [BE1]: coul1 = [BE1].Interior.Color: coul2 = [BF1].Interior.Color
    For lig = 2 To 379
        Set pl = Cells(lig, 7).Resize(, 49).SpecialCells(xlCellTypeBlanks)
        If Not pl Is Nothing Then
            For Each pl2 In pl.Areas
                If pl2.Count >= nbMin Then pl2.Interior.Color = coul1
                If pl2.Column = 7 Then pl2.Interior.Color = coul2
                If pl2.Column + pl2.Count - 1 = 55 Then pl2.Interior.Color = coul2
            Next pl2
        End If
    Next lig
End Sub
eric
 
Bonjour,

met ta couleur d'extrémités voulue en BF1 et :
VB:
Sub colore()
    Dim pl As Range, pl2 As Range, lig As Long
    Dim nbMin As Long, coul1 As Long, coul2 As Long
    nbMin = [BE1]: coul1 = [BE1].Interior.Color: coul2 = [BF1].Interior.Color
    For lig = 2 To 379
        Set pl = Cells(lig, 7).Resize(, 49).SpecialCells(xlCellTypeBlanks)
        If Not pl Is Nothing Then
            For Each pl2 In pl.Areas
                If pl2.Count >= nbMin Then pl2.Interior.Color = coul1
                If pl2.Column = 7 Then pl2.Interior.Color = coul2
                If pl2.Column + pl2.Count - 1 = 55 Then pl2.Interior.Color = coul2
            Next pl2
        End If
    Next lig
End Sub
eric


Bonsoir,
Rien à dire, c'est excellent.

voilà ce que j'ai commencé à faire mais après avoir vu le code d' @eriiiic 😳😳😳😱😱😱

VB:
Sub Mise_en_forme()
For k = 4 To 4
    For l = 55 To 7 Step -1
        Var = 0
        If Not IsEmpty(Cells(k, l)) Then
        Var = Var + 1
        End If
        If Var <> 0 Then
        GoTo suite2
        End If
    Next l
suite2:
Range(Cells(k, 55), Cells(k, l + 1)).Interior.Color = RGB(197, 217, 241)
Next k
For j = 4 To 4
    For i = 7 To 55
        Var = 0
        If Not IsEmpty(Cells(j, i)) Then
        Var = Var + 1
        End If
        If Var <> 0 Then
        GoTo suite
        End If
    Next i
suite:
Range(Cells(j, 7), Cells(j, i - 1)).Interior.Color = RGB(197, 217, 241)
Next j
End Sub

code seulement pour les couleurs d'extrémités.😉😉
 
Bonjour,

parce que tu n'as aucune cellule vide, il y a des espaces.
Ce n'est pas parce qu'on ne les voit pas qu'ils ne comptent pas.
Supprime tes espaces et remplace la ligne par :
VB:
        On Error Resume Next
        Set pl = Cells(lig, 7).Resize(, 49).SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
eric
 
Bonjour,

Est-il possible que la macro supprime les espaces?
Toutefois, chaque cellule est une formule SI....valeur, sinon "" donc est-il plutôt possible de modifier la macro en testant si c'est un caractère alphanumérique plutôt qu'une cellule vide?
Sinon je vais devoir reécrire la formule à chaque fois qu'elle aura été effacée.

Merci
Bon samedi.
 
- 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
10
Affichages
463
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
128
Réponses
16
Affichages
464
Réponses
18
Affichages
360
Retour