changer la couleur d'une colonne dans une fonction
1 réponse
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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.