Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

changer la couleur d'une colonne dans une fonction

1 réponse
Avatar
Jean-Michel
Bonjour à tous

Je souhaiterais changer la couleur d'une colonne sous certaines conditions
C-A-D j'ai dans chaque cases de la ligne 1 : un 1, un 2, ou un 3 et je
voudrais changer la couleur de la colonne en fonction de ces valeurs.
Exemple si C1=1 -> couleur de la police de la colonne C = 53 (couleur
presque rouge)
si D1=2 -> couleur de la police de la colonne D = 11 (couleur bleu)
si E1=3 -> couleur de la police de la colonne E = 10 (couleur vert)
Sinon couleur de la police de la colonne = 1 (couleur noir)

Pour cela j'ai pensé a crée une fonction. Donc je rajoute une ligne en
dessous (ligne 2) avec la fonction : couleur en passant par argument la case
du dessus et la lettre de la colonne : donc en C2 il y a =couleur(C1 ;"C") en
D2 il y a =couleur(D1 ; "D") etc.…

Voici ce qu'il y a dans ma fonction :

Function couleur(valeur As Integer, colonne As String) As ColorFormat
Select Case valeur
Case 1
Columns(colonne).Font.ColorIndex = 53 ' rouge
Case 2
Columns(colonne).Font.ColorIndex = 11 ' bleu
Case 3
Columns(colonne).Font.ColorIndex = 10 ' vert
Case Else
Columns(colonne).Font.ColorIndex = 1 ' noir
End Select
End Function

La commande : Columns(colonne).Font.ColorIndex fonctionne dans une macro
mais pas dans la fonction.

Le Pb se trouve peut être dans la déclaration de ma fonction, mais je ne
trouve pas l'erreur.

Merci d'avance pour votre aide.
JM

1 réponse

Avatar
Vincnet.
Bonjour
Si tu n'as que quatre conditions, utilise plutôt une mise en forme
conditionnelle (dans le menu Format) qu'une fonction macro...
Et si tu tiens à le faire en vba, utilise plutôt qu'une fonction des
procédures événementielles (de l'objet Sheet ou de l'objet ThisWorkbook), par
exemple pour un code lié au changement de sélection d'une feuille donnée :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'ton code
End Sub

--
A+

V.



Bonjour à tous

Je souhaiterais changer la couleur d'une colonne sous certaines conditions
C-A-D j'ai dans chaque cases de la ligne 1 : un 1, un 2, ou un 3 et je
voudrais changer la couleur de la colonne en fonction de ces valeurs.
Exemple si C1=1 -> couleur de la police de la colonne C = 53 (couleur
presque rouge)
si D1=2 -> couleur de la police de la colonne D = 11 (couleur bleu)
si E1=3 -> couleur de la police de la colonne E = 10 (couleur vert)
Sinon couleur de la police de la colonne = 1 (couleur noir)

Pour cela j'ai pensé a crée une fonction. Donc je rajoute une ligne en
dessous (ligne 2) avec la fonction : couleur en passant par argument la case
du dessus et la lettre de la colonne : donc en C2 il y a =couleur(C1 ;"C") en
D2 il y a =couleur(D1 ; "D") etc.…

Voici ce qu'il y a dans ma fonction :

Function couleur(valeur As Integer, colonne As String) As ColorFormat
Select Case valeur
Case 1
Columns(colonne).Font.ColorIndex = 53 ' rouge
Case 2
Columns(colonne).Font.ColorIndex = 11 ' bleu
Case 3
Columns(colonne).Font.ColorIndex = 10 ' vert
Case Else
Columns(colonne).Font.ColorIndex = 1 ' noir
End Select
End Function

La commande : Columns(colonne).Font.ColorIndex fonctionne dans une macro
mais pas dans la fonction.

Le Pb se trouve peut être dans la déclaration de ma fonction, mais je ne
trouve pas l'erreur.

Merci d'avance pour votre aide.
JM