• Initiateur de la discussion Initiateur de la discussion red-69
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

red-69

Guest
Bonjour à tous.

J'ai créé une macro qui en fonction de la valeur de la cellule C11 me colore la cellule B11 en différentes couleur.
Mon problème c'est que je dois lancer la macro manuellement via un bonton d'appel de macro.
Je souhaiterai que cette opération soit automatisée, sans avoir besoin du bouton, mais cela ne fonctinone pas même avec worksheet_selectionchange en début de macro.
Quelqu'un aurait-il une idée ??
par avance merci.

Voici la macro :

Sub Worksheet_SelectionChange()
Call color
End Sub
------------------------------------
Sub color()
Worksheets("détail activités").Select
Range("c11").Select
valeur = ActiveCell.Value

If valeur >= 0.9 Then 'couleur verte
Range("b11").Select
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With

ElseIf valeur >= 0.75 Then 'couleur jaune
Range("b11").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With

ElseIf valeur >= 0.5 Then ' couleur orange
Range("b11").Select
With Selection.Interior
.ColorIndex = 45
.Pattern = xlSolid
End With

ElseIf valeur < 0.5 Then 'couleur rouge
Range("b11").Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If


End Sub
 
Re : Macro automatique

Re,

Essaye alors le code suivant et ça devrait normalement marcher :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Call color
End Sub

PS : Tu peux aussi mettre ton code complèt (color) à l'intérieur de cette routine
 
Dernière édition:
Re : Macro automatique

Bonjour red-69,

Je suppose que la macro événementielle est destiné à la feuille "détail activités".
Dans ce cas, point besoin de la sélectionner.
Ensuite, le fait de faire un Select sur une autre cellule pour cet événement (worksheet_selectionchange), cela va relancer le code puisque la sélection a changé...
Je te suggère enfin de rester dans ce code afin d'exploiter Target:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$C$11" Then
    valeur = Target.Value

    With Range("b11").Interior
      If valeur >= 0.9 Then  'couleur verte
        .ColorIndex = 4
        .Pattern = xlSolid

      ElseIf valeur >= 0.75 Then  'couleur jaune
        .ColorIndex = 6
        .Pattern = xlSolid

      ElseIf valeur >= 0.5 Then  ' couleur orange
        .ColorIndex = 45
        .Pattern = xlSolid

      ElseIf valeur < 0.5 Then  'couleur rouge
        .ColorIndex = 3
        .Pattern = xlSolid
      End If
    End With
  End If
End Sub
Bonne soirée.

Edit: Bonjour tbft, Raja, je n'ai pas vu les réponses avant de répondre.
 
Dernière édition:
Re : Macro automatique

Re,

Essaye alors le code suivant et ça devrait normalement marcher :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Call color
End Sub

merci de l'info,
mais il n'y a aucun changements.
normalement, la cellule C11 correspond à une somme automatique et la valeur de cette somme définit la couleur de la cellule B11. Sauf que rien ne se passe lorsque je modifie les nombres rentrant dans l'addition et que je ne lance pas la macro manuellement.
 
Re : Macro automatique

Re,

merci de vous penchez sur mon pb.
En fait, je souhaiterai que la macro s'effectue dès que je change la valeur d'une cellule.

Dans ce cas:
Code:
Private Sub [COLOR=Blue][B]Worksheet_Change[/B][/COLOR](ByVal Target As Range)
  If Target.Address = "$C$11" Then
    valeur = Target.Value

    With Range("b11").Interior
      If valeur >= 0.9 Then  'couleur verte
        .ColorIndex = 4
        .Pattern = xlSolid

      ElseIf valeur >= 0.75 Then  'couleur jaune
        .ColorIndex = 6
        .Pattern = xlSolid

      ElseIf valeur >= 0.5 Then  ' couleur orange
        .ColorIndex = 45
        .Pattern = xlSolid

      ElseIf valeur < 0.5 Then  'couleur rouge
        .ColorIndex = 3
        .Pattern = xlSolid
      End If
    End With
  End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
14
Affichages
478
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
721
Retour