Couleur texte dans une forme

Bonjour à tous, je cherche à changer de couleur de texte dans une forme sélectionnée.

j'ai une boucle qui vient sélectionner mes formes concernées.

la commande .ForeColor.RGB = RGB ( ... , .... , .... ) Me permet de changer la couleur de la forme mais je souhaiterais rajouter une ligne pour changer la couleur du texte.

quelqu'un pourrait m'aider?

merci d'avance.

Bonjour,

Merci de joindre le fichier SVP ou au moins le code entier

@+

Bonjour Le Nen Samuel, Salut BrunoM45 ,

Voici un exemple avec une boucle sur les formes de la feuille active :

for each sh in activesheet.shapes
    'mes autres instructions
    sh.textframe2.textrange.font.fill.forecolor.rgb = RGB(1, 2, 3) '<<< adapter RGB
next sh

Cdlt,

C'est un peu une usine à gaz mais voici mon code :

Private Sub Worksheet_calculate()
On Error Resume Next
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim i As Integer 'déclare la variable I (Incrément)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim f As Shape 'déclare la variable F (Forme)
nomfeuill = ActiveSheet.Name

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
DL = Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne C
For Each O In Worksheets 'boucle sur tous les onglets O du classeur
    If Not O.Name = "BD" Then 'condition 1 : si le le nom de l'onglet n'est pas "BDD"
        O.Activate 'active l'onglet de la boucle 1
        For Each f In O.Shapes 'boucle 2 : sur toutes les formes F de l'onglet O
            For i = 1 To DL 'boucle 3 : sur toutes les lignes I de 1 à DL
                If UBound(Split(Cells(i, "A"), " ")) > 0 Then 'condition 2 : si la valeur de la cellule ligne I colonne A contient un espace
                    If f.Name = Split(Cells(i, "A"), " ")(1) Then 'condition 3 : si le texte après le premier espace est égal au nom de la forme F
                        O.Shapes.Range((Array(Split(Cells(i, "A"), " ")(1)))).Select  'sélectionne la forme F
                        With Selection.ShapeRange.Fill 'prend en compte le remplissage de la forme sélectionnée
                            If Cells(i, "T").Text = "1" Then 'condition 4 : si la valeur de la cellule ligne I colonne C est [vrai]
                                .ForeColor.RGB = RGB(0, 0, 0) 'couleur noir
                                End If
                            If Cells(i, "T").Text = "2" Then 'sinon (condition 4)
                                .ForeColor.RGB = RGB(255, 0, 0) 'couleur rouge
                            End If 'fin de la condition 4
                            If Cells(i, "T").Text = "3" Then 'sinon (condition 4)
                                .ForeColor.RGB = RGB(255, 195, 0) 'couleur orange

                            End If 'fin de la condition 4
                              'fin de la condition 4
                            If Cells(i, "T").Text = "4" Then 'sinon (condition 4)
                                .ForeColor.RGB = RGB(96, 224, 128) 'couleur vert

                            End If 'fin de la condition 4

                            If Cells(i, "T").Text = "5" Then 'sinon (condition 4)
                                .ForeColor.RGB = RGB(136, 122, 183) 'couleur violet
                            End If 'fin de la condition 4

                            If Cells(i, "T").Text = "6" Then 'sinon (condition 4)
                                .ForeColor.RGB = RGB(118, 122, 121) 'couleur gris
                            End If 'fin de la condition 4

                        End With 'fin de la prise en compte du remplissage de la forme sélectionnée
                    End If 'fin de la condition 3
               End If 'fin de la condition 2
            Next i 'prochaine ligne de la boucle 3
        Next f 'prochaine forme de la boucle 2
    End If 'fin de la condition 1
    ActiveCell.Select 'désélectionne une éventuelle forme
Next O 'prochaine onglet de la boucle 1
'Me.Activate 'acticve l'onglet en cours

Sheets(nomfeuill).Activate
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
Exit Sub
End Sub

Bonjour,

Plusieurs choses ne vont pas dans votre code, notamment l'imbrication de la boucle sur les formes et de celle sur les lignes.

D'une part, il y a certainement un meilleur moyen d'y parvenir et d'autre part, en l'état, sauf incompréhension de ma part, une même forme change plusieurs fois de couleur pour ne retenir que la couleur de la dernière correspondance avec une cellule en T.

Quels sont vos noms de forme et quand faut-il donner une certaine couleur ? Combien avez-vous de formes par feuille ?

Cdlt,

Rechercher des sujets similaires à "couleur texte forme"