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

Plus de 3 critères pour mise en forme conditionnelle

3 réponses
Avatar
TDV47
Bonsoir !
J'ai essayé de comprendre comment obtenir avec Excel 2003 6 conditions pour
la mise en forme conditionnelle en lisant des trucs et astuces sur divers
forums ; ne sachant pas programmer en VBA, j'ai recopié bêtement uene macro
dans un module VBA Editor, ce qui ne m'a servi à rien...
Je voudrais tout simplement (!) que les nombres 61 à 66 apparaissent chacun
dans une couleur différente, ceci afin de repérer rapidement les personnes
liées à ces nombres.
Merci de votre aide !
Bien cordialement,
--
VZTDV

3 réponses

Avatar
LSteph
Bonsoir,
pour limiter le poids de cette mise en oeuvre de procèdure évènementielle
je te propose ceci sur change et là dessus bouclage de la plage [a1:m60]


''****dans code dela feuille***
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.ScreenUpdating = False
For Each c In [a1:m60].Cells
If c Mod 1 = 0 And c > 60 And c < 67 Then
c.Font.ColorIndex = c - 54
Else
c.Font.ColorIndex = 1
End If
Next
End Sub

'lSteph


"TDV47" a écrit dans le message de news:

Bonsoir !
J'ai essayé de comprendre comment obtenir avec Excel 2003 6 conditions
pour
la mise en forme conditionnelle en lisant des trucs et astuces sur divers
forums ; ne sachant pas programmer en VBA, j'ai recopié bêtement uene
macro
dans un module VBA Editor, ce qui ne m'a servi à rien...
Je voudrais tout simplement (!) que les nombres 61 à 66 apparaissent
chacun
dans une couleur différente, ceci afin de repérer rapidement les personnes
liées à ces nombres.
Merci de votre aide !
Bien cordialement,
--
VZTDV


Avatar
Michel Gaboly
Bonsoir,

Voici un exemple, à copier dans le module de code associé à la feuille
(accessible avec un clic droit sur l'onglet de la feuille ("Visualiser
le code")

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim c As Range
For Each c In Target
Select Case c
Case 61
c.Interior.ColorIndex = 3
Case 62
c.Interior.ColorIndex = 4
Case 63
c.Interior.ColorIndex = 5
Case 64
c.Interior.ColorIndex = 6
Case 65
c.Interior.ColorIndex = 7
Case 66
c.Interior.ColorIndex = 8
End Select
Next
End Sub

Ceci met une couleur de fond dans la cellule concernée.

Pour appliquer la couleur à la police et non au fond de la cellule,
remplacer "Interior" par "Font".


En cahnageant les valeurs de ColorIndex, ru fais varier les couleurs.

Si les 6 couleurs se suivent comme ici, tu peux simplifier le code, en
utilisant le fait que la différence entre la valeur de la cellule et le
code couleur sont constant, ici 58.

Cela donne :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim c As Range
For Each c In Target
Select Case c
Case 61 To 66
c.Interior.ColorIndex = c - 58
End Select
Next
End Sub


Si un complément d'info t'es nécessaire, n'hésite pas.


Bonsoir !
J'ai essayé de comprendre comment obtenir avec Excel 2003 6 conditions pour
la mise en forme conditionnelle en lisant des trucs et astuces sur divers
forums ; ne sachant pas programmer en VBA, j'ai recopié bêtement uene macro
dans un module VBA Editor, ce qui ne m'a servi à rien...
Je voudrais tout simplement (!) que les nombres 61 à 66 apparaissent chacun
dans une couleur différente, ceci afin de repérer rapidement les personnes
liées à ces nombres.
Merci de votre aide !
Bien cordialement,



--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
LSteph
Re,
juste une petite rectif au cas où il y ait autre chose que des nombres
dans la plage :


Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.ScreenUpdating = False
For Each c In [a1:m60].Cells
If Val(c.Value) Mod 1 = 0 And c > 60 And c < 67 Then
c.Font.ColorIndex = c - 54
Else
c.Font.ColorIndex = 1
End If
Next
End Sub

'lSteph

"TDV47" a écrit dans le message de news:

Bonsoir !
J'ai essayé de comprendre comment obtenir avec Excel 2003 6 conditions
pour
la mise en forme conditionnelle en lisant des trucs et astuces sur divers
forums ; ne sachant pas programmer en VBA, j'ai recopié bêtement uene
macro
dans un module VBA Editor, ce qui ne m'a servi à rien...
Je voudrais tout simplement (!) que les nombres 61 à 66 apparaissent
chacun
dans une couleur différente, ceci afin de repérer rapidement les personnes
liées à ces nombres.
Merci de votre aide !
Bien cordialement,
--
VZTDV