Bonjour à tous

Dans le tableau j'ai 10 colonnes, j'écris sur une ligne une tache et sur celle de dessous la sous tache, puis je fusionne les cellules.
j’essaie de trouver l'adresse de la dernière colonne de la plage de cellule fusionnée et si elle est inférieur à 10, je voudrais colorer la plage vide
exemple la plage "A4:F4" est fusionnée et contient des données, je sélectionne la plage "G4:j5" et je luis applique un jolis gris

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Sub gris()
 
Dim Ligne As Long, Colonne As Integer, Lig As Integer, Col As Integer
 
With Sheets("vierge")
 
        For Lig = 4 To 42 Step 1
 
            For Col = 10 To 1 Step -1
 
                If .Cells(Lig, Col) <> "" Then
 
                    With .Cells(Lig, Col).MergeArea
 
 
                        Colonne = Columns(.Cells(Lig, Col).MergeArea.Columns.Count + .Cells(Lig, Col).MergeArea.Column - 1).Column
                        .Range(.Cells(Lig, Colonne + 1), .Cells(Lig + 1, 10)).Interior.Color = &HC0C0C0
 
                    End With
 
                End If
 
            Next Col
            Col = 10
 
        Next Lig
 
End With
 
End Sub
Parfois mon code fonctionne mais il fait surtout n'importe quoi : même si le N° de ligne et de colonne correspondent ça colore une plage de cellule n'importe ou sur la feuille; ça semble tout à fait aléatoire et je n'y comprend vraiment rien, alors je vous remercie d'avance pour votre aide