Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formater le resultat de sous total

2 réponses
Avatar
Dante Huapaya
Bonjour à tous et toutes,

Je cherche à formater les cellules qui contiennent le résultat
des sous-totaux avec cette macro mais ca ne fonctionne pas,
merci de vos conseils

Dim c As Range
If Intersect(Range("f7:f200"), ActiveCell) Is Nothing Then
Range("f7").Activate
Set c = Range("f7:f200").Find(what:=xlFormulas, after:=ActiveCell)
If c Is Nothing Then
MsgBox ("Pas de formule sous-totaux dans la colonne F")
Else
c.Font.Name = "Arial"
c.Font.Size = 12
c.Font.ColorIndex = 3

End If
End If

Dante Huapaya

2 réponses

Avatar
michdenis
Bonjour Dante,


Voici 2 façons de faire. Il y en a d'autres. La bonne méthode dépend
surtout des caractéristiques de la plage concernée.


Cette façon exige qu'il n'y ait pas d'autres formules que les
formules de sous-totaux dans les colonnes visées
'-----------------------------------
Sub Sous_Totaux1()

Dim Rg As Range

With Worksheets("Feuil1")
.Columns(1).Insert Shift:=xlToRight
Set Rg = .Range("A1:F" & .Range("B65536").End(xlUp).Row)
End With
On Error Resume Next
With Rg
.Item(1, 1) = "Année"
.Item(2, 1).FormulaLocal = "=année(" & .Item(2, 2).Address(0, 0) & ")"
Range(.Item(2, 1).Cells, .Item(Rg.Rows.Count, 1).Cells).FillDown
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3, 4, 5), _
Replace:=True, PageBreaks:úlse, SummaryBelowData:=True
With .Offset(, 2).Resize(, Rg.Columns.Count - 2).EntireColumn _
.SpecialCells(xlCellTypeFormulas)
.Font.ColorIndex = 3
.Font.Bold = True
End With
End With
Set Rg = Nothing

End Sub
'-----------------------------------



La mise en forme des lignes de sous-totaux se fait par une recherche
du mot "total" dans la colonne 1 de la plage.
'-----------------------------------
Sub Sous_Totaux2()

Dim Rg As Range, C As Range, FirstAddress As String

With Worksheets("Feuil1")
.Columns(1).Insert Shift:=xlToRight
Set Rg = .Range("A1:F" & .Range("B65536").End(xlUp).Row)
End With
On Error Resume Next
With Rg
.Item(1, 1) = "Année"
.Item(2, 1).FormulaLocal = "=année(" & .Item(2, 2).Address(0, 0) & ")"
Range(.Item(2, 1).Cells, .Item(Rg.Rows.Count, 1).Cells).FillDown
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3, 4, 5), _
Replace:=True, PageBreaks:úlse, SummaryBelowData:=True
With .EntireColumn
Set C = .Find("Total", LookIn:=xlValues, lookat:=xlPart)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
With C.Resize(, 5)
.Font.ColorIndex = 3
.Font.Bold = True
End With
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> FirstAddress
End If
End With

End With
Set Rg = Nothing: Set C = Nothing

End Sub
'-----------------------------------


Salutations!



"Dante Huapaya" a écrit dans le message de news:

Bonjour à tous et toutes,

Je cherche à formater les cellules qui contiennent le résultat
des sous-totaux avec cette macro mais ca ne fonctionne pas,
merci de vos conseils

Dim c As Range
If Intersect(Range("f7:f200"), ActiveCell) Is Nothing Then
Range("f7").Activate
Set c = Range("f7:f200").Find(what:=xlFormulas, after:¬tiveCell)
If c Is Nothing Then
MsgBox ("Pas de formule sous-totaux dans la colonne F")
Else
c.Font.Name = "Arial"
c.Font.Size = 12
c.Font.ColorIndex = 3

End If
End If

Dante Huapaya
Avatar
JB
Bonjour,

Une MFEC suffit:


http://cjoint.com/?mvuVOwbuaI

-Sélectionner le champ A1:E30
-Format/Mise en forme conditionnelle

=GAUCHE($B1;7)="Moyenne"


Nom Service Salaire Qualif Date_naiss
Andribet Compta 914,69 € Q1 13/10/1960
Dang Compta 1 219,59 € Q1 15/10/1960
Dupont Compta 1 219,59 € Q1 16/10/1950
Cowan Compta 1 067,14 € Q2 14/10/1960
Lebosse Compta 1 372,04 € Q2 17/10/1950
Moyenne Compta 1 158,61 €
Dykiel Etudes 1 067,14 € Q1 21/10/1970
Ceuzin Etudes 1 372,04 € Q2 18/10/1950
Dupond Etudes 1 524,49 € Q2 19/10/1950
Durand Etudes 914,69 € Q2 20/10/1950
Moyenne Etudes 1 219,59 €
Martinet Fabric 1 372,04 € Q1 24/10/1970

Cordialement JB