Aide : Griser le fond de cellules sur une ligne lorsqu'une valeur change

Bonjour,

Je souhaite créer un tableau Excel où lorsque je rentre la valeur X dans n'importe quelle cellule de la colonne G, un fond grisé vient se mettre de la colonne A à G sur la ligne sélectionnée. Je mets le tableau Excel en p.j, c'est plus parlant si vous rentrez la valeur X de la liste dans l'une des cellules de la colonne G.

Le code la feuille : (Qui fonctionne très bien !)

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 7 Then Application.Run "Macro1"

End Sub

Le code de la macro :

Sub Macro1()

' Macro qui va insérer un fond tainté dans la mise en forme des cellules

' Macro1 Macro

'

'

Range(ActiveCell, ActiveCell.Offset(-1, -6)).Select

With Selection.Interior

.Pattern = xlGray8

.PatternThemeColor = xlThemeColorDark1

.PatternTintAndShade = -0.249946592608417

End With

Range(ActiveCell, ActiveCell.Offset(0, 6)).Select

End Sub

Mon souci, c'est que la macro va également prendre en compte la ligne en dessous de la ligne où je rentre ma valeur X en colonne G.

De plus, je voudrais qu'à la fin de la macro, la cellule de la première colonne en cours se selectionne (donc pas "Range(ActiveCell, ActiveCell.Offset(0, 6)).Select") qui me sélectionne les 6 colonnes d'un coup.

Merci d'avance pour votre aide,

Cordialement

11test2.xlsm (17.48 Ko)

Bonjour,

Essaie ainsi ...

Sub Macro1()
    ' Macro qui va insérer un fond tainté dans la mise en forme des cellules

    With Range("A" & ActiveCell.Row & ":G" & ActiveCell.Row)
        With .Interior
            .Pattern = xlGray8
            .PatternThemeColor = xlThemeColorDark1
            .PatternTintAndShade = -0.249946592608417
        End With
    End With
End Sub

ric

Bonsoir,

Peut-être comme ça!!

Sub Macro1()
    Range(ActiveCell, ActiveCell.Offset(-0, -6)).Select
    With Selection.Interior
        .Pattern = xlGray8
        .PatternThemeColor = xlThemeColorDark1
        .PatternTintAndShade = -0.249946592608417
    End With
    Range(ActiveCell, ActiveCell.Offset(0, 0)).Select

End Sub

Slts

Bonjour à tous,

@boss_68 ... pourquoi les .Select ? Quand l'on peut s'en passer aisément et, du même élan, accélérer le traitement. N'est-ce pas charmant ??

ric

Je vous remercie grandement, la solution de ric est parfaite, et ce que propose aussi boss_68 m'a mis sur la piste dans ma réflexion. Voici mon code final :

Sub Macro1()

' Macro qui va insérer un fond tainté dans la mise en forme des cellules

' Macro1 Macro

'

'

With Range("A" & ActiveCell.Row & ":G" & ActiveCell.Row)

With .Interior

.Pattern = xlGray8

.PatternThemeColor = xlThemeColorDark1

.PatternTintAndShade = -0.249946592608417

End With

End With

ActiveCell.Offset(0, -6).Select

End Sub

Seule la ligne de la cellule sélectionnée se grise et la sélection revient bien à la première colonne de la ligne.

Un grand merci à vous !

ric

Rechercher des sujets similaires à "aide griser fond ligne lorsqu valeur change"