Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Coloration automatique de cellules par macro

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonsoir,
J'ai réussi à composer une macro afin de colorier des cellules en feuille 'Phase2'.
Mais il me faut à chaque fois sélectionner chaque cellule pour en obtenir la couleur correspondante !
Comme ce triangle donne des codes suite à un cheminement de calculs - nouveau calcul --> nouveaux codes affichés -, j'aimerais qu'à chaque résultat d'affichage des codes dans ce triangle, les couleurs se placent automatiquement.

Pouvez-vous m'aider à corriger ce code ?
Je suppose que c'est au niveau de <<ByVal Target As Range>>> que ça cloche... mais je ne connais pas la solution.

Meric pour votre aide
Webperegrino
 

Pièces jointes

  • ESSAI.xls
    58 KB · Affichages: 59
  • ESSAI.xls
    58 KB · Affichages: 62
  • ESSAI.xls
    58 KB · Affichages: 59

Grand Chaman Excel

XLDnaute Impliqué
Re : Coloration automatique de cellules par macro

Bonjour webperigrino,

J'ai réussi à faire ce que tu veux ainsi :

1. Nommer la plage AI6:BI19 "Plage"
2. changer le code suivant :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
    For Each c In [Plage]
        coloration c
    Next c
     ' coloration Target
End Sub

Le code fait une boucle à travers toutes les cellules de la plage nommée "Plage"

A+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Coloration automatique de cellules par macro

Bonjour Webperegrino,

ton fichier en retour
avec ce code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
If Not Intersect(Target, Range("AI6:BI19")) Is Nothing Then
    For Each cel In Range("AI6:BI19")
        Select Case cel.Value
            Case "Vi"
                cel.Interior.Color = Range("AF6").Interior.Color
            Case "I"
                cel.Interior.Color = Range("AF7").Interior.Color
             Case "Ci"
                cel.Interior.Color = Range("AF8").Interior.Color
             Case "Ve"
                cel.Interior.Color = Range("AF9").Interior.Color
             Case "J"
                cel.Interior.Color = Range("AF10").Interior.Color
             Case "O"
                cel.Interior.Color = Range("AF11").Interior.Color
             Case "R"
                cel.Interior.Color = Range("AF12").Interior.Color
             Case "Rose"
                cel.Interior.Color = Range("AF13").Interior.Color
             Case "Tu"
                cel.Interior.Color = Range("AF14").Interior.Color
            Case Else
        End Select
    Next cel
End If
End Sub
à+
Philippe

Edit: Bonjour Grand Chaman
 

Pièces jointes

  • 111.xls
    66 KB · Affichages: 66
  • 111.xls
    66 KB · Affichages: 68
  • 111.xls
    66 KB · Affichages: 64

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : Coloration automatique de cellules par macro

Bonjour Grand_Chaman_Excel,
Bonjour Philippe,
Bonjour Le Forum,

- J'ai réalisé quelques ajustements (la codification ne fonctionnant pas sur ce triangle final contenant des formules indiquant les résultats Vi, J, R, Ci, etc),
- j'ai produit un triangle intermédiaire pour n'afficher dans notre triangle final que des "valeurs"... copier le triangle intermédiaire -- coller "Valeurs dans le trangle final,
- j'ai alors réussi à appliquer sans problème la codification de Philippe.

Grand Chaman Excel, ta formulation était alléchante, mais j'ai eu un message d'erreur du type : Coloration : erreur de compilation Sub ou Function non définie.
J'ai donc dû abandonner cette proposition. Désolé.

Sincèrement, je vous remercie tous les deux d'avoir porté une attention à ma demande. Mon fichier original, adapté sur la proposition de Philippe fonctionne parfaitement.

Bon Week-end à vous tous, et encore merci au Forum d'exister.
C'est toujours un plaisir de venir y fureter des raisonnements pour mes applications Excel.
Webperegrino
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…