Colorier les dates des mois pairs en VBA uniquement
Résolu
fredounette
-
fredounette -
fredounette -
Bonjour,
Je vous remercie d'avance pour votre précieuse aide :-)
J'ai un tableau (sorte de planning) sur 3 ans que l'utilisateur doit pouvoir venir colorier pour indiquer des absences spécifiques. Afin de mieux distinguer les dates je voulais colorier les dates correspondants aux mois pairs. Je ne peux pas le faire via la mise en forme conditionnelle puisque la couleur de la MFC passe au-dessus du coloriage qui sera fait par l'utilisateur.
Il me faut donc recourir à une macro. J'ai essayé ceci sans succès :
Sub couleur_mois_pair()
Dim Mois As Integer
Mois = Month(ActiveCell)
Range("a8:bb38").Select
For Each cell In Selection
If ActiveCell.Value = Application.WorksheetFunction.Even(Mois) Then
ActiveCell.Interior.ColorIndex = 3
End If
Next
End Sub
Pour la suite, si qqn a une idée géniale ^^, j'aimerais, toujours en vba, trouver la date la plus récente coloriée en code couleur 39 (car j'ai une fonction qui compte le nombre de cellule mises en code couleur 39). Je dois pouvoir ensuite compter les jours restant en diminuant la valeur que j'ai trouvé avec ma fonction.
exemple : j'ai colorié 65 cases (ma fonction me retourne 65) et, à partir de la date la plus récente, je dois simuler la date qui correspond au 180ème jours à partir de la date la plus récente (180-65).
Un énorme merci d'avance à vos contributions
Je vous remercie d'avance pour votre précieuse aide :-)
J'ai un tableau (sorte de planning) sur 3 ans que l'utilisateur doit pouvoir venir colorier pour indiquer des absences spécifiques. Afin de mieux distinguer les dates je voulais colorier les dates correspondants aux mois pairs. Je ne peux pas le faire via la mise en forme conditionnelle puisque la couleur de la MFC passe au-dessus du coloriage qui sera fait par l'utilisateur.
Il me faut donc recourir à une macro. J'ai essayé ceci sans succès :
Sub couleur_mois_pair()
Dim Mois As Integer
Mois = Month(ActiveCell)
Range("a8:bb38").Select
For Each cell In Selection
If ActiveCell.Value = Application.WorksheetFunction.Even(Mois) Then
ActiveCell.Interior.ColorIndex = 3
End If
Next
End Sub
Pour la suite, si qqn a une idée géniale ^^, j'aimerais, toujours en vba, trouver la date la plus récente coloriée en code couleur 39 (car j'ai une fonction qui compte le nombre de cellule mises en code couleur 39). Je dois pouvoir ensuite compter les jours restant en diminuant la valeur que j'ai trouvé avec ma fonction.
exemple : j'ai colorié 65 cases (ma fonction me retourne 65) et, à partir de la date la plus récente, je dois simuler la date qui correspond au 180ème jours à partir de la date la plus récente (180-65).
Un énorme merci d'avance à vos contributions
A voir également:
- Colorier les dates des mois pairs en VBA uniquement
- Nombre de jours entre deux dates excel - Guide
- Comment trier des dates par mois sur excel - Guide
- Excel mois en lettre ✓ - Forum Bureautique
- 600h en mois ✓ - Forum Excel
- Conversion cellule avec mois en chiffre en mois en lettre - Forum Excel
1 réponse
Bonjour,
Sub couleur_mois_pair() Dim Mois As Integer, Plage As Range Application.ScreenUpdating = False Set Plage = Worksheets("feuil1").Range("a8:bb38") 'mise en memoire plage de cellules For Each Cell In Plage If Month(Cell) Mod 2 Then 'test si pair Cell.Interior.ColorIndex = 3 End If Next Cell Application.ScreenUpdating = True End Sub
bonne journée