Une histoire de couleur et de valeur (suite) .......

Signaler
Messages postés
41
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
31 janvier 2008
-
Messages postés
41
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
31 janvier 2008
-
Bonjour a tous,

Il y a quelques jours, j'ai pose le probleme suivant :

J aimerais faire changer de couleur les cellules ayant une valeur au dela d un certain montant. Suite a ma question, , qq un m a donne ce bout de code. Cependant, je ne comprends pas les lignes surlignees.

Merci d avance

Sub CouleurSelective()
Dim Cellule As Range
Range("A1:G200").Select
If TypeName(Selection) < "Range" Then Exit Sub
Const REDINDEX = 3
Application.ScreenUpdating = False
For Each Cellule In Selection
If Cellule.Value > 500 Then
Cellule.Interior.ColorIndex = REDINDEX
Else
Cellule.Interior.ColorIndex = xlNone
End If
Next Cellule
Range("A1").Select
End Sub

7 réponses

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Application.ScreenUpdating, détermine si l'affichage de l'écran est mis à jour (True) ou non (False) lors de l'exécution d'une macro.Ne pas mettre à jour l'affichage de l'écran améliore les performances de celle-ci.
De plus les tâches exécutées sont invisibles pour l'utilisateur tant que la macro n'est pas terminée. La propriété ScreenUpdating est automatiquement remise à True lorsque la macro est terminée.

If TypeName(Selection) < "Range" Then Exit sub, vérifie le type de variable entrée dans les cellules, sinon le pgr engendrait une erreur.Donc si aucune cellule ne contient un chiffre suppérieur à 500 ou si elles contiennent du texte , annuler la commande (Exit sub).

jpleroisse
Messages postés
41
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
31 janvier 2008

Dans mon appli, je fais la somme de plusieurs cellules. C'est le resultat qui doit changer de couleur. Comment puis je declencher cette macro ? (je ne sais pas quel evenement utiliser)
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Tu commandes ta macro de la feuille ou d'un bouton de commande ?
Messages postés
41
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
31 janvier 2008

En fait, j aiemerais que ce soit automatique .Autrement dit, quand la valeur de la cellule change, la couleur change si elle est superieure a 37, par exemple. Je ne veux pas passer par un boutton.

L ideal serait de lier la macro a un evenememt de type ' changement de valeur de la cellule' mais je n ai pas l impression que ca existe.
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Tu place ce code dans l'évenement WorkSheet
Ici j'ai choisi C10 comme cellule recevant le total du calcul, si la valeur est supp. à 37 et infer. ou égale à 50, couleur de cellule Rouge. Si Supp. à 50 et inf ou égale à 100, cellule en Jaune.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("C10").Value > 37 And Range("C10").Value <= 50 Then
Range("C10").Interior.ColorIndex = 3
ElseIf Range("C10").Value > 50 And Range("C10").Value <= 100 Then
Range("C10").Interior.ColorIndex = 6
Else
Range("C10").Interior.ColorIndex = 0
End If
End Sub

PS tu ouvres l'éditeur VBA et tu DBlClick sur Feuil1

jpleroisse
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Statut
Membre
Dernière intervention
17 mars 2017
4
Salut,
tu peux aussi utiliser le format conditionnel dans l'espace excel
Menu Format / Mise en forme conditionnelle et tu te laisses guider.
Avec se système tu peux par exemple définir une police en blanc quand tu ne veux pas la voir
ex:

Exédent Ressource Manque ressource
| | | 1000€ |

ces deux cellules contiennent la même valeur mais une se voit et pas l'autre.

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
Messages postés
41
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
31 janvier 2008

Bonjour a tous,

Je voulais juste te remercier jpleroisse car tu m aides vraiment beucoup avec tous ces idees. Tu maitrises vraiment bien VBA et tu m apprends beucoup de choses.

Quant a toi Jean-Paul
, merci pour cette astuce que je ne connaissais pas sous excel. C est d une simplicite a toutes epreuves.

Bon dimanche a tous