Texte blanc dans une macro ?

Résolu
Guy72 Messages postés 907 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 26 avril 2024 - Modifié le 21 avril 2024 à 09:55
Le Pingou Messages postés 12058 Date d'inscription mercredi 11 août 2004 Statut Non membre Dernière intervention 2 mai 2024 - 22 avril 2024 à 10:05

Bonjour,
J'ai une macro ci jointe.

Option Explicit


Dim R As Integer
Dim G As Integer
Dim B As Integer

Dim E As String


Public I13save ' Mémorisation des valeurs en publique

Sub Worksheet_Calculate()
    If [I13] <> I13save Then I13save = [I13]: Worksheet_Change ([I13]) 'Vent Maxi
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

'- Vent en rafale ----------------------------------------------------------------------
If Not Intersect(Target, Range("I13")) Is Nothing Then
Select Case Target.Value

Case Is = 0: R = 0: G = 250: B = 250
Case Is < 11: R = 190: G = 240: B = 250
Case Is < 21: R = 120: G = 170: B = 220
Case Is < 31: R = 230: G = 180: B = 180
Case Is < 41: R = 250: G = 152: B = 70
Case Is < 51: R = 192: G = 80: B = 77
Case Is < 61: R = 230: G = 110: B = 10
Case Is < 71: R = 201: G = 196: B = 10: E = vbWhite
Case Is < 81: R = 167: G = 62: B = 59: E = vbWhite
Case Is < 91: R = 250: G = 90: B = 90: E = vbWhite
Case Is < 101: R = 255: G = 70: B = 50: E = vbWhite
Case Is > 100: R = 255: G = 55: B = 0: E = vbWhite
End Select
Shapes("Texte Rafale").Fill.ForeColor.RGB = RGB(R, G, B)
End If
End Sub

au dessus de 60 km/h, je devrait avoir un texte blanc.
Je n'arrive pas à l'avoir. Y a-t-il une erreur dans la macro ?

Cordialement


Windows / Chrome 124.0.0.0

A voir également:

12 réponses

Le Pingou Messages postés 12058 Date d'inscription mercredi 11 août 2004 Statut Non membre Dernière intervention 2 mai 2024 1 430
21 avril 2024 à 11:53

Bonjour,

Juste au passage le code RGB pour blanc est  (R=255,G=255,B=255)

En principe il n'y a pas de valeur E !!!!


0
Guy72 Messages postés 907 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 26 avril 2024 21
Modifié le 21 avril 2024 à 13:30

Ce que je voulais, c'est avoir le fond de la couleur obtenue par la macro.
Exemple: 

Case Is < 91: R = 250: G = 90: B = 90

Mais avoir le texte blanc

Case Is < 91: R = 250: G = 90: B = 90: E = vbWhite
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
21 avril 2024 à 17:35

Salut,

Pas tout compris ton code ou ce que tu voulais faire. si ton shape est nommé Texte Rafale teste le code comme cela.

Ensuite il faudra ajuster tes nuances RGB, exemple pour le noir c'est RGB(0,0,0)

Private Sub Worksheet_Change(ByVal Target As Range)
'- Vent en rafale ----------------------------------------------------------------------
    If Not Intersect(Target, Range("I13")) Is Nothing Then
        Shapes("Texte Rafale").Select
            With Selection.ShapeRange.Fill
                If [I13] > 100 Then .ForeColor.RGB = RGB(255, 55, 0)
                If [I13] < 101 Then .ForeColor.RGB = RGB(255, 70, 50)
                If [I13] < 91 Then .ForeColor.RGB = RGB(250, 90, 90)
                If [I13] < 81 Then .ForeColor.RGB = RGB(167, 62, 59)
                If [I13] < 71 Then .ForeColor.RGB = RGB(201, 196, 10)
                If [I13] < 61 Then .ForeColor.RGB = RGB(230, 110, 10)
                If [I13] < 51 Then .ForeColor.RGB = RGB(192, 80, 77)
                If [I13] < 41 Then .ForeColor.RGB = RGB(250, 152, 70)
                If [I13] < 31 Then .ForeColor.RGB = RGB(230, 180, 180)
                If [I13] < 21 Then .ForeColor.RGB = RGB(120, 170, 220)
                If [I13] < 11 Then .ForeColor.RGB = RGB(190, 240, 250)
                If [I13] = 0 Then .ForeColor.RGB = RGB(0, 250, 250)
            End With
    [I13].Select
    End If
End Sub
 


0
Guy72 Messages postés 907 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 26 avril 2024 21
21 avril 2024 à 17:45

Voici mon code en entier.
Mais il change la couleur du fond, mais pas le texte.
 

Option Explicit

Dim R As Integer
Dim G As Integer
Dim B As Integer

Dim E As String

Public I18save, I22save, I12save, I13save ' Mémorisation des valeurs en publique

Sub Worksheet_Calculate()
    If [I18] <> I18save Then I18save = [I18]: Worksheet_Change ([I18]) 'Température
    If [I22] <> I22save Then I22save = [I22]: Worksheet_Change ([I22]) 'Vent Relevés
    If [I12] <> I12save Then I12save = [I12]: Worksheet_Change ([I12]) 'Soleil
    If [I13] <> I13save Then I13save = [I13]: Worksheet_Change ([I13]) 'Vent Maxi
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

'- Bouée de la température ---------------------------------------------------------------------
If Not Intersect(Target, Range("I18")) Is Nothing Then
Select Case Target.Value

Case Is < 0: R = 255: G = 51: B = 0
Case Is < 6: R = 204: G = 0: B = 153
Case Is < 11: R = 153: G = 153: B = 255
Case Is < 16: R = 51: G = 153: B = 255
Case Is < 21: R = 186: G = 224: B = 30
Case Is < 26: R = 255: G = 204: B = 153
Case Is < 31: R = 255: G = 204: B = 0
Case Is < 35: R = 255: G = 153: B = 0
Case Is < 41: R = 250: G = 190: B = 140
Case Is < 46: R = 226: G = 107: B = 10
Case Is > 51: R = 255: G = 0: B = 0

End Select
Shapes("Bouée T°").Fill.ForeColor.RGB = RGB(R, G, B)
End If

'- Bouée du Vent ----------------------------------------------------------------------
If Not Intersect(Target, Range("I22")) Is Nothing Then
Select Case Target.Value

Case Is = 0: R = 0: G = 250: B = 250
Case Is < 11: R = 190: G = 240: B = 250
Case Is < 21: R = 120: G = 170: B = 220
Case Is < 31: R = 230: G = 180: B = 180
Case Is < 41: R = 250: G = 152: B = 70
Case Is < 51: R = 192: G = 80: B = 77
Case Is < 61: R = 230: G = 110: B = 10
Case Is < 71: R = 201: G = 196: B = 10
Case Is < 81: R = 167: G = 62: B = 59
Case Is < 91: R = 250: G = 90: B = 90
Case Is < 101: R = 255: G = 70: B = 50
Case Is > 100: R = 255: G = 55: B = 0

End Select
Shapes("Bouée Vent").Fill.ForeColor.RGB = RGB(R, G, B)
End If

'- Bouée du Soleil ----------------------------------------------------------------------
If Not Intersect(Target, Range("I12")) Is Nothing Then
Select Case Target.Value
Case Is = 0: R = 166: G = 166: B = 166
Case Is < 60: R = 255: G = 255: B = 224
Case Is < 120: R = 255: G = 255: B = 192
Case Is < 180: R = 255: G = 255: B = 160
Case Is < 240: R = 255: G = 255: B = 128
Case Is < 300: R = 255: G = 255: B = 96
Case Is < 360: R = 255: G = 255: B = 64
Case Is < 420: R = 255: G = 255: B = 32
Case Is < 480: R = 255: G = 255: B = 0
Case Is >= 480: R = 255: G = 255: B = 0
End Select
Shapes("Bouée Soleil").Fill.ForeColor.RGB = RGB(R, G, B)
End If

'- Zone texte Vent en rafale ----------------------------------------------------------------------
If Not Intersect(Target, Range("I13")) Is Nothing Then
Select Case Target.Value

Case Is = 0: R = 0: G = 250: B = 250
Case Is < 11: R = 190: G = 240: B = 250
Case Is < 21: R = 120: G = 170: B = 220
Case Is < 31: R = 230: G = 180: B = 180
Case Is < 41: R = 250: G = 152: B = 70
Case Is < 51: R = 192: G = 80: B = 77
Case Is < 61: R = 230: G = 110: B = 10
Case Is < 81: R = 167: G = 62: B = 59
Case Is < 91: R = 250: G = 90: B = 90
Case Is < 101: R = 255: G = 70: B = 50
Case Is > 100: R = 255: G = 55: B = 0
End Select
Shapes("Texte Rafale").Fill.ForeColor.RGB = RGB(R, G, B)
End If
End Sub

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
21 avril 2024 à 18:35

Re,

Difficile de travailler sur des données partielles,

pourquoi as tu deux shapes nommées "Bouée soleil" et "Bouée T°", es ce que tu as empilé plusieurs shapes on ne peut apprécier sur l'image de ton post 2


0
Le Pingou Messages postés 12058 Date d'inscription mercredi 11 août 2004 Statut Non membre Dernière intervention 2 mai 2024 1 430
21 avril 2024 à 18:41

Bonjour,

Et pourquoi ne pas mettre votre fichier à disposition avec un petit commentaire directement sur la feuille. Mettre le fichier sur https://www.cjoint.com/ et poster le lien.


0
Guy72 Messages postés 907 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 26 avril 2024 21
21 avril 2024 à 19:12
0
Le Pingou Messages postés 12058 Date d'inscription mercredi 11 août 2004 Statut Non membre Dernière intervention 2 mai 2024 1 430
21 avril 2024 à 20:35

Bonjour,

Merci pour le fichier, la solution pour demain, patience.


0
Guy72 Messages postés 907 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 26 avril 2024 21
21 avril 2024 à 20:40

Pas de problème
Bonne nuit

0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
Modifié le 21 avril 2024 à 21:20

Re,

Comme l'a dit l'ami Le Pingou que je salue, demain fera jour. Mais à première vue  pour Bouée T° la cellule de déclenchement n'est pas i18 mais i20. 

If Not Intersect(Target, Range("I20")) Is Nothing Then

ensuite le fait de changer la valeur donc en I20 la bouée change de couleur..

Ensuite pour Bouée vent il me semble que ce n'est pas I22 mais I28

et Bouée soleil I24, mais pour ces deux cas tu fais référence à des cellules dont le contenu change OUI BIEN SUR mais résultat issu de formule hors pour déclencher un code il faut que le contenu change par une action manuelle sur la cellule.

ou il faut choisir une cellule qui inévitablement changera par une action manuelle et à partir de là tu déclenches tous les codes, ou opter pour un autre type de déclenchement.


0
Guy72 Messages postés 907 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 26 avril 2024 21
Modifié le 22 avril 2024 à 08:37

Mais à première vue  pour Bouée T° la cellule de déclenchement n'est pas i18 mais i20. 

Bonjour,
Si c'est en i18....

0
Le Pingou Messages postés 12058 Date d'inscription mercredi 11 août 2004 Statut Non membre Dernière intervention 2 mai 2024 1 430
21 avril 2024 à 21:50

Bonjour,

J'ai de l'avance. Voir si c'est ce que vous désirez.

Le fichier : https://www.cjoint.com/c/NDvtYsVxpmZ


0
Guy72 Messages postés 907 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 26 avril 2024 21
22 avril 2024 à 08:45

Bonjour

Impeccable !!!
Ça correspond
Merci

0
Le Pingou Messages postés 12058 Date d'inscription mercredi 11 août 2004 Statut Non membre Dernière intervention 2 mai 2024 1 430
22 avril 2024 à 10:05

Merci, pensez de marquer comme résolu si c'est le cas.


0