GNT sans publicité, site mobile, fonctionnalitées exclusives...

changer la couleur d'une colonne dans une fonction

Le
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
Lire la réponse

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vincnet.
Le #2528771
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


Publicité
Suivre les réponses
Poster une réponse
Anonyme