Compelement de Macro

Bonjour!

Sur le classeur en pièce jointe, le togglebutton affecte un total sur facture, je voudrais juste compléter la macro en donnant une couleur différente à la ligne du total. (Même aspect que l'en-tête)

les commandes:

.Interior.ColorIndex = 3

.Font.ColorIndex = 6

Ne sont-elles pas à leur places.

Merci à tous.

14sous-totaux.xlsm (49.30 Ko)

Bonjour,

Avec un point placé devant, Interior et Font doivent référer à un objet Range, dans un bloc With...

Il serait bien que tu fasses disparaître les Select et Selection de ton code pour travailler directement avec les objets...

Il serait préférable aussi de définir les couleurs avec Color, plutôt que ColorIndex (système limité à l'ancienne palette de 56 couleurs...)

Cordialement.

Bonjour Mferrand!

Merci pour les conseils, je vais essayer de le faire, je suis pas trop connaisseur en VBA, mais ...

Cordialement

Bonjour,

Bonjour MFerrand

Une possibilité sinon:

Sub Sous_Totaux()
    ActiveSheet.ListObjects("Tableau1").Unlist
    Range("A1").Select
    Selection.Subtotal GroupBy:=12, Function:=xlSum, TotalList:=Array(17, 18, _
        19), Replace:=False, PageBreaks:=False, SummaryBelowData:=True
        With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ColorIndex = 3
        .TintAndShade = 0
    End With

End Sub

Cordialement

Re,

Tu bidouilles depuis un certain temps ! Ça tu devrais y arriver...

Bonjour besoin_d_aide !

Merci pour votre solution, la ligne total ne se colore pas, sauf si je n'ai pas su appliquer le code. Je remet le classeur avec un exemple sur la ligne 6

Merci encore.

34sous-totaux.xlsm (55.12 Ko)

Re,

Et avec la nouvelle version?

Sub Sous_Totaux()
    ActiveSheet.ListObjects("Tableau1").Unlist
    Range("A1").Select
    Selection.Subtotal GroupBy:=12, Function:=xlSum, TotalList:=Array(17, 18, _
        19), Replace:=False, PageBreaks:=False, SummaryBelowData:=True
Dim cel As Range
For Each cel In Range("L2:L200")
If cel.Value Like "Total*" Then
        Range(cel.Row & ":" & cel.Row).Select
        With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = 3
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ColorIndex = 3
        .TintAndShade = 0
    End With
Else
End If
Next cel
End Sub

Cordialement

Bonjour besoin_d_aide !

Merci pour votre aide, la macro fonctionne bien, une dernière question , qu'elle est l'instruction qui permet de colorier la ligne et comment restreindre la couleur a la dernière colonne "X" .

Merci encore à vous.

Re,

L'instruction est celle-ci :

With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = 3
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

Pour limiter à la colonne X, il suffit de remplacer

Range(cel.Row & ":" & cel.Row).Select

Par le code suivant :

Range("X" & cel.Row).Select

Ce qui donne :

Sub Sous_Totaux()
    ActiveSheet.ListObjects("Tableau1").Unlist
    Range("A1").Select
    Selection.Subtotal GroupBy:=12, Function:=xlSum, TotalList:=Array(17, 18, _
        19), Replace:=False, PageBreaks:=False, SummaryBelowData:=True
Dim cel As Range
For Each cel In Range("L2:L200")
If cel.Value Like "Total*" Then
        Range("X" & cel.Row).Select
        With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = 3
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ColorIndex = 3
        .TintAndShade = 0
    End With
Else
End If
Next cel
End Sub

Cordialement

Bonjour besoin_d_aide!

Je vous remercie infiniment pour votre réponse, je suis partis sur une autre logique pour restreindre la couleur.

A bientôt

Cordialement.

Bonjour besoin_d_aide ;

Je pense m'avoir mal expliqué, en fait c'est pas restreindre la couleur à la colonne X, mais colorer toute la ligne du total de la Colonne A à la colonne X

Merci encore.

Je pense m'avoir mal expliqué, en fait c'est pas restreindre la couleur à la colonne X, mais colorer toute la ligne du total de la Colonne A à la colonne X

Aaaaaaaaaaaaaaaaaaaaaaaaah

dans ce cas , le code est :

Range("A" & cel.Row & ":X" & cel.Row).Select

Cordialement

Re Bonjour!

Désolé d'abuser de votre gentillesse.

Merci infiniment, je vais mettre le code aussitôt.

Cordialement

Rechercher des sujets similaires à "compelement macro"