Changer la couleur d'un onglet automatiquement selon condit

laerous Messages postés 53 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 28 mars 2024 - 28 mars 2024 à 13:33
yg_be Messages postés 22754 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 - 28 mars 2024 à 16:28

bonjour

je souhaiterais savoir s'il est possible d'appliquer une macro pour que mes onglets changent automatiquement de couleur une fois une date défini est dépassée?

ex: j'ai 4 onglets de couleur violette nommés de la façon suivante:

01.04.24

08.04.24

15.04.24

22.04.24

29.04.24

Je souhaiterais par exemple qu'au 08.04.24 l'onglet nommé 01.04.24 passe gris

Est ce possible?

merci par avance

à très vite

A voir également:

3 réponses

yg_be Messages postés 22754 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 479
28 mars 2024 à 14:00

bonjour,

Cela me semble très possible. 

Du code VBA pourrait, par exemple, être exécuté chaque fois que le classeur s'ouvre, et faire passer en gris les onglets dont le nom correspond à une date dépassée.

0
laerous Messages postés 53 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 28 mars 2024 1
28 mars 2024 à 14:02

merci

par contre je ne sais absolument pas faire de VBA :-(

0
yg_be Messages postés 22754 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 479
28 mars 2024 à 14:23

un exemple de code:

Private Sub Workbook_Open()
Dim ws1 As Worksheet, ws2 As Worksheet, nom As String, d As Integer, m As Integer, y As Integer, prems As Boolean
prems = True
For Each ws2 In ThisWorkbook.Sheets
    If Not prems Then
        nom = ws2.Name
        If Len(nom) = 8 Then
            d = Left(nom, 2)
            m = Mid(nom, 4, 2)
            y = Right(nom, 2)
            If IsNumeric(d) And IsNumeric(m) And IsNumeric(y) Then
                If DateSerial(y, m, d) < Now() Then
                    ws1.Tab.Color = RGB(128, 128, 128)
                End If
            End If
        End If
    End If
    prems = False
    Set ws1 = ws2
Next ws2
End Sub
0
laerous Messages postés 53 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 28 mars 2024 1
28 mars 2024 à 14:24

MERCI BEAUCOUP

J'ESSAYE IMMEDIATEMENT

0
yg_be Messages postés 22754 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 479
28 mars 2024 à 14:50

Si un onglet a un nom correspondant à une date présente ou passée, le code met en gris la couleur de l'onglet à gauche.

0
laerous Messages postés 53 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 28 mars 2024 1
28 mars 2024 à 14:53

J'ai bien essayé en copiant/collant mais je pense que je dois y apporter des modifications mais cela est vraiment au dessus de mes compétences...

0
yg_be Messages postés 22754 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 479
28 mars 2024 à 15:59

Le code a bien été copié dans le module de code du classeur?

0
leelyerous > yg_be Messages postés 22754 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024
28 mars 2024 à 16:02

je viens de le refaire et ca fonctionne! vraiment génial un grand merci

si vous avez le temps pourrez vous me l'expliquer en retour de message svp? j'aimerai bien comprendre 

en tout ca merci bcp

0
yg_be Messages postés 22754 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 479 > leelyerous
28 mars 2024 à 16:28
  • pour chaque onglet, sauf le premier,
  • on calcule la date correspondant au nom de l'onglet
  • si cette date est présente ou passée, on met en gris l'onglet précédent
0