Private Sub Worksheet_Change(ByVal Target As Range) If Not IsDate(Target.Value) Then Exit Sub End If With Target.Interior Select Case Weekday(Target.Value) Case Is = 1 .ColorIndex = 5 Case Is = 2 .ColorIndex = 3 Case Is = 3 .ColorIndex = 12 Case Is = 4 .ColorIndex = 6 Case Is = 5 .ColorIndex = 43 Case Is = 6 .ColorIndex = 9 Case Is = 7 .ColorIndex = 14 End Select End With End Sub
Les dates seront coloriées selon le jour de la semaine qu'elles représentent (Lundi, Mardi, etc.)
-- François L
Et comment realiser cette idée en VBA ?
Bonsoir,
A mettre dans une feuille
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsDate(Target.Value) Then
Exit Sub
End If
With Target.Interior
Select Case Weekday(Target.Value)
Case Is = 1
.ColorIndex = 5
Case Is = 2
.ColorIndex = 3
Case Is = 3
.ColorIndex = 12
Case Is = 4
.ColorIndex = 6
Case Is = 5
.ColorIndex = 43
Case Is = 6
.ColorIndex = 9
Case Is = 7
.ColorIndex = 14
End Select
End With
End Sub
Les dates seront coloriées selon le jour de la semaine qu'elles
représentent (Lundi, Mardi, etc.)
Private Sub Worksheet_Change(ByVal Target As Range) If Not IsDate(Target.Value) Then Exit Sub End If With Target.Interior Select Case Weekday(Target.Value) Case Is = 1 .ColorIndex = 5 Case Is = 2 .ColorIndex = 3 Case Is = 3 .ColorIndex = 12 Case Is = 4 .ColorIndex = 6 Case Is = 5 .ColorIndex = 43 Case Is = 6 .ColorIndex = 9 Case Is = 7 .ColorIndex = 14 End Select End With End Sub
Les dates seront coloriées selon le jour de la semaine qu'elles représentent (Lundi, Mardi, etc.)
-- François L
Apitos
Merci Francois L.
Mais comment faire pour que toute la ligne d'une date soit coloriée ?
Merci.
Merci Francois L.
Mais comment faire pour que toute la ligne d'une date soit coloriée ?
Mais comment faire pour que toute la ligne d'une date soit coloriée ?
Merci.
Bonsoir,
Tu remplaces
With Target.Interior
par
With Target.EntireRow.Interior
-- François L
Apitos
Je m'excuse mais je voulais seulement les lignes de mon tableau et non la ligne de la feuuille complete ...
et puis une petite question :
pourquoi, parfois le coloriage fonctionne, et parfois ne fonctionne que si je ferme tout mes fichiers excel ouvert, et le redemarrage à nouveau le fichier de coloriage ?
Merci.
Je m'excuse mais je voulais seulement les lignes de mon tableau et non
la ligne de la feuuille complete ...
et puis une petite question :
pourquoi, parfois le coloriage fonctionne, et parfois ne fonctionne que
si je ferme tout mes fichiers excel ouvert, et le redemarrage à
nouveau le fichier de coloriage ?
Je m'excuse mais je voulais seulement les lignes de mon tableau et non la ligne de la feuuille complete ...
et puis une petite question :
pourquoi, parfois le coloriage fonctionne, et parfois ne fonctionne que si je ferme tout mes fichiers excel ouvert, et le redemarrage à nouveau le fichier de coloriage ?
Merci.
Francois L
Je m'excuse mais je voulais seulement les lignes de mon tableau et non la ligne de la feuuille complete ...
Re,
Si le tableau s'étend des colonnes B à G par exemple, le With devient With Range("B" & Target.Row, "G" & Target.Row).Interior
et puis une petite question :
pourquoi, parfois le coloriage fonctionne, et parfois ne fonctionne que si je ferme tout mes fichiers excel ouvert, et le redemarrage à nouveau le fichier de coloriage ?
Je ne vois pas, le code ne s'applique qu'à une feuille de travail... mais je ne suis pas un gourou de VBA et d'Excel
-- François L
Je m'excuse mais je voulais seulement les lignes de mon tableau et non
la ligne de la feuuille complete ...
Re,
Si le tableau s'étend des colonnes B à G par exemple, le With devient
With Range("B" & Target.Row, "G" & Target.Row).Interior
et puis une petite question :
pourquoi, parfois le coloriage fonctionne, et parfois ne fonctionne que
si je ferme tout mes fichiers excel ouvert, et le redemarrage à
nouveau le fichier de coloriage ?
Je ne vois pas, le code ne s'applique qu'à une feuille de travail...
mais je ne suis pas un gourou de VBA et d'Excel
Je m'excuse mais je voulais seulement les lignes de mon tableau et non la ligne de la feuuille complete ...
Re,
Si le tableau s'étend des colonnes B à G par exemple, le With devient With Range("B" & Target.Row, "G" & Target.Row).Interior
et puis une petite question :
pourquoi, parfois le coloriage fonctionne, et parfois ne fonctionne que si je ferme tout mes fichiers excel ouvert, et le redemarrage à nouveau le fichier de coloriage ?
Je ne vois pas, le code ne s'applique qu'à une feuille de travail... mais je ne suis pas un gourou de VBA et d'Excel
Premierement j'ai placé le code dans l'evenement Worksheet_SelectionChange de la feuille parce qu'il ne fonctionnait pas dans l'evenement Worsheet_Change qui à deja du code.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Si on se positionne sur une ligne qui a pour valeur de la colonne A qui n'est pas une date ' alors la couleur est blanche
If Not IsDate(Target.Range("A" & Target.Row).Value) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub End If With Range("A" & Target.Row, "F" & Target.Row).Interior Select Case Weekday(Target.Value) Case Is = 1 .ColorIndex = 27 Case Is = 2 .ColorIndex = 45 Case Is = 3 .ColorIndex = 33 Case Is = 4 .ColorIndex = 40 Case Is = 5 .ColorIndex = 19 Case Is = 6 .ColorIndex = 44 Case Is = 7 .ColorIndex = 35 End Select End With
Bon je voulais apporté quelques modifications sur le code mais je n'arrive pas.
- J'ai ajouté cette condition :
If Not IsDate(Target.Range("A" & Target.Row).Value) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub
pour colorier la ligne en blanc si la colonne A en cette position n'est pas une date.
- Et puis j'aimerias que, quand le curseur quitte la cellule dont laquelle est saisie la date dans la colonne A, la ligne correspondante sera automatiquement coloriée.
Bon voila, et merci d'avance de votre aide.
Bonsoir,
j'aimerias avoir de l'aide.
Premierement j'ai placé le code dans l'evenement
Worksheet_SelectionChange de la feuille parce qu'il ne fonctionnait pas
dans l'evenement Worsheet_Change qui à deja du code.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Si on se positionne sur une ligne qui a pour valeur de la colonne A
qui n'est pas une date
' alors la couleur est blanche
If Not IsDate(Target.Range("A" & Target.Row).Value) Then
Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0
Exit Sub
End If
With Range("A" & Target.Row, "F" & Target.Row).Interior
Select Case Weekday(Target.Value)
Case Is = 1
.ColorIndex = 27
Case Is = 2
.ColorIndex = 45
Case Is = 3
.ColorIndex = 33
Case Is = 4
.ColorIndex = 40
Case Is = 5
.ColorIndex = 19
Case Is = 6
.ColorIndex = 44
Case Is = 7
.ColorIndex = 35
End Select
End With
Bon je voulais apporté quelques modifications sur le code mais je
n'arrive pas.
- J'ai ajouté cette condition :
If Not IsDate(Target.Range("A" & Target.Row).Value) Then
Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0
Exit Sub
pour colorier la ligne en blanc si la colonne A en cette position n'est
pas une date.
- Et puis j'aimerias que, quand le curseur quitte la cellule dont
laquelle est saisie la date dans la colonne A, la ligne correspondante
sera automatiquement coloriée.
Premierement j'ai placé le code dans l'evenement Worksheet_SelectionChange de la feuille parce qu'il ne fonctionnait pas dans l'evenement Worsheet_Change qui à deja du code.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Si on se positionne sur une ligne qui a pour valeur de la colonne A qui n'est pas une date ' alors la couleur est blanche
If Not IsDate(Target.Range("A" & Target.Row).Value) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub End If With Range("A" & Target.Row, "F" & Target.Row).Interior Select Case Weekday(Target.Value) Case Is = 1 .ColorIndex = 27 Case Is = 2 .ColorIndex = 45 Case Is = 3 .ColorIndex = 33 Case Is = 4 .ColorIndex = 40 Case Is = 5 .ColorIndex = 19 Case Is = 6 .ColorIndex = 44 Case Is = 7 .ColorIndex = 35 End Select End With
Bon je voulais apporté quelques modifications sur le code mais je n'arrive pas.
- J'ai ajouté cette condition :
If Not IsDate(Target.Range("A" & Target.Row).Value) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub
pour colorier la ligne en blanc si la colonne A en cette position n'est pas une date.
- Et puis j'aimerias que, quand le curseur quitte la cellule dont laquelle est saisie la date dans la colonne A, la ligne correspondante sera automatiquement coloriée.
Bon voila, et merci d'avance de votre aide.
Francois L
Bonsoir,
j'aimerias avoir de l'aide.
Re,
Premierement j'ai placé le code dans l'evenement Worksheet_SelectionChange de la feuille parce qu'il ne fonctionnait pas dans l'evenement Worsheet_Change qui à deja du code.
Le problème c'est que ces deux évènements sont différents notamment parce que avec SelectionChange Target est la nouvelle plage sélectionnée et non pas celle qui vient d'être modifiée. Il faudrait donc voir si ce qui est déjà dans le Change est compatible avec la mise en forme
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Si on se positionne sur une ligne qui a pour valeur de la colonne A qui n'est pas une date ' alors la couleur est blanche
If Not IsDate(Target.Range("A" & Target.Row).Value) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub End If
A remplacer par If Not IsDate(Target) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub End If
- Et puis j'aimerias que, quand le curseur quitte la cellule dont laquelle est saisie la date dans la colonne A, la ligne correspondante sera automatiquement coloriée.
Revenir à l'évènement Change...
-- François L
Bonsoir,
j'aimerias avoir de l'aide.
Re,
Premierement j'ai placé le code dans l'evenement
Worksheet_SelectionChange de la feuille parce qu'il ne fonctionnait pas
dans l'evenement Worsheet_Change qui à deja du code.
Le problème c'est que ces deux évènements sont différents notamment
parce que avec SelectionChange Target est la nouvelle plage sélectionnée
et non pas celle qui vient d'être modifiée. Il faudrait donc voir si ce
qui est déjà dans le Change est compatible avec la mise en forme
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Si on se positionne sur une ligne qui a pour valeur de la colonne A
qui n'est pas une date
' alors la couleur est blanche
If Not IsDate(Target.Range("A" & Target.Row).Value) Then
Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0
Exit Sub
End If
A remplacer par
If Not IsDate(Target) Then
Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0
Exit Sub
End If
- Et puis j'aimerias que, quand le curseur quitte la cellule dont
laquelle est saisie la date dans la colonne A, la ligne correspondante
sera automatiquement coloriée.
Premierement j'ai placé le code dans l'evenement Worksheet_SelectionChange de la feuille parce qu'il ne fonctionnait pas dans l'evenement Worsheet_Change qui à deja du code.
Le problème c'est que ces deux évènements sont différents notamment parce que avec SelectionChange Target est la nouvelle plage sélectionnée et non pas celle qui vient d'être modifiée. Il faudrait donc voir si ce qui est déjà dans le Change est compatible avec la mise en forme
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Si on se positionne sur une ligne qui a pour valeur de la colonne A qui n'est pas une date ' alors la couleur est blanche
If Not IsDate(Target.Range("A" & Target.Row).Value) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub End If
A remplacer par If Not IsDate(Target) Then Range("A" & Target.Row, "F" & Target.Row).Interior.ColorIndex = 0 Exit Sub End If
- Et puis j'aimerias que, quand le curseur quitte la cellule dont laquelle est saisie la date dans la colonne A, la ligne correspondante sera automatiquement coloriée.