Code VBA pour colorier des cellules

Bonjour,

Comme vous le verrez sur le fichier joint il s'agit d'écrire un code VBA qui permet de colorier la ligne "couleur" du deuxième tableau suivant les valeurs saisies de l'intervalle du premier tableau (PKdébut - PKfin). Je l'ai fait avec les fonction rechercheV et la mise en forme conditionnelle mais le fichier est très lourd et extrêmement lent lors de l’exécution.

Merci d'avance pour vos réponses.

Bonjour,

une solution basée sur l'exemple que tu as donné.

Sub colorie()
    With ActiveSheet
        dl = .Cells(.Rows.Count, "B").End(xlUp).Row
        Set r = .Range("F7:U7")
        For i = 8 To dl
            Set b1 = r.Find(.Cells(i, "B"), lookat:=xlWhole)
            If b1 Is Nothing Then Exit For
            Set b2 = r.Find(.Cells(i, "C"), lookat:=xlWhole)
            If b2 Is Nothing Then Exit For
            Range(b1(2), b2(2)).Interior.Color = RGB(64, 128, 255)
        Next i
    End With
End Sub

Bonjour,

Autre solution :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pkd%, pkf%, i%, clr&, PlgS As Range, PlgC As Range
    Set PlgS = Me.Range("B8:C17")
    Set PlgC = Me.Range("G8:U8")
    clr = RGB(141, 180, 226)
    If Not Intersect(Target, PlgS) Is Nothing Then
        Application.ScreenUpdating = False
        PlgC.Interior.ColorIndex = xlColorIndexNone
        With PlgS
            For i = 1 To .Rows.Count
                If .Cells(i, 1) <> "" And .Cells(i, 2) <> "" Then
                    pkd = .Cells(i, 1) \ 25 + 1: pkf = .Cells(i, 2) \ 25 + 1
                    Range(PlgC.Cells(1, pkd), PlgC.Cells(1, pkf)).Interior.Color = clr
                Else
                    Exit For
                End If
            Next i
        End With
    End If
End Sub

Cependant, comme tu fais état d'un fichier lourd et lent, ce qui n'est pas le cas de ton modèle, et n'ayant pas d'élément sur les causes de ce qui affecte ton fichier réel, il n'est pas vraiment sûr que cela puisse solutionner ton problème...

Cordialement.

super merci pour vos réponses ça fonctionne

Rechercher des sujets similaires à "code vba colorier"