Etendre une macro à plusieurs lignes et onglets
PA
-
PA -
PA -
Bonjour,
J'ai un fichier avec beaucoup d'onglets et je souhaite que sur chacun des onglets, pour chaque ligne de la colonne H à la colonne T, la cellule ayant la valeur la plus faible se colore en vert, celle du milieu en orange et la plus élevée en rouge.
Avec l'aide de l'enregistreur de macro j'ai réussi à avoir le code pour 1 ligne mais je n'arrive pas à l'implémenter sur chaque ligne et chaque onglet (sauf le dernier) de mon fichier
Voici ce que j'ai:
Sub Macro3()
'
'
'
Range("$H5:$T5").Select
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
.Color = 8109667
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
.Color = 8711167
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
.Color = 7039480
.TintAndShade = 0
End With
Next
End Sub
Merci d'avance pour votre aide!
J'ai un fichier avec beaucoup d'onglets et je souhaite que sur chacun des onglets, pour chaque ligne de la colonne H à la colonne T, la cellule ayant la valeur la plus faible se colore en vert, celle du milieu en orange et la plus élevée en rouge.
Avec l'aide de l'enregistreur de macro j'ai réussi à avoir le code pour 1 ligne mais je n'arrive pas à l'implémenter sur chaque ligne et chaque onglet (sauf le dernier) de mon fichier
Voici ce que j'ai:
Sub Macro3()
'
'
'
Range("$H5:$T5").Select
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
.Color = 8109667
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
.Color = 8711167
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
.Color = 7039480
.TintAndShade = 0
End With
Next
End Sub
Merci d'avance pour votre aide!
A voir également:
- Etendre une macro à plusieurs lignes et onglets
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Etendre ecran pc - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Restaurer les onglets chrome - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
4 réponses
Merci pour ce retour rapide!
Cela marche pour toutes les lignes H5:T5 de chaque onglet mais pas pour toutes les lignes du tableau délimité par les colonnes H:T de chaque onglet...
Cela marche pour toutes les lignes H5:T5 de chaque onglet mais pas pour toutes les lignes du tableau délimité par les colonnes H:T de chaque onglet...
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
et ainsi?
Option Explicit
Sub Macro3()
'
'
'
Dim fichier As Workbook
Dim onglet As Worksheet
Dim dernligne As Long
Dim ligne As Long
Set fichier = ActiveWorkbook
For Each onglet In fichier.Sheets
onglet.Select
dernligne = onglet.Range("H36000").End(xlUp).Row
For ligne = 5 To dernligne
onglet.Range("H" & CStr(ligne) & ":T" & CStr(ligne)).Select
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count). _
SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
.Color = 8109667
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
.Color = 8711167
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
.Color = 7039480
.TintAndShade = 0
End With
Next ligne
Next onglet
End Sub
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour, voici ce que je propose:
Option Explicit
Sub Macro3()
'
'
'
Dim fichier As Workbook
Dim onglet As Worksheet
Set fichier = ActiveWorkbook
For Each onglet In fichier.Sheets
onglet.Select
onglet.Range("$H5:$T5").Select
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count). _
SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
.Color = 8109667
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
.Color = 8711167
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
.Color = 7039480
.TintAndShade = 0
End With
Next onglet
End Sub
y-a-t'il une colonne qui contient des données sur chaque ligne du tableau?
dernligne = Sheets(Name).Range("A36000").End(xlUp).Row
Les colonnes contiennent soit du texte soit des nombres (comparatif de prix)