IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Colorer des cellules en fonction de la date qu'elles contiennent [Débutant(e)]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Colorer des cellules en fonction de la date qu'elles contiennent
    Bonjour,

    Je suis en train d'apprendre le VBA. Essentiellement pour pouvoir mettre automatiquement en forme.
    J'ai un soucis quand à la coloration conditionnelle de la cellule en fonction de la date qu'elle contient.
    En effet, dans une colonne j'ai des dates de naissance. Je souhaite colorer toutes les cellules qui ont une date de naissance supérieure (plus jeune) au 1/12/56. L'idéal serait supérieure à la date du jour moins 55ans.

    Voici actuellement mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub MizEnForm()
    	Range("D:D,I:I,O:O,T:U,W:X").Delete Shift:=xlToLeft
     
    	Sheets("Feuil1").Range("H:H").Select    
    		Application.ScreenUpdating = 0        
    		If Cell.Value > Format("20790", "dd/mm/yy") Then        
    			Cell.Select            
    			With Selection.Interior                    
    				.ColorIndex = 7                  
    				.Pattern = xlSolid            
    			End With
    		End If
    End Sub
    Petite question optionnelle: comment enregistrer cette macro de façon à pouvoir l'appeler sur n'importe quel classeur?

    Merci par avance pour votre aide.

    Rahan

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub MizEnForm()
        Range("D:D,I:I,O:O,T:U,W:X").Delete Shift:=xlToLeft
     
        With Sheets("Feuil1")
            Application.ScreenUpdating = 0
            Set Plage = .Range(.[H1], .Cells(.Rows.Count, "H").End(xlUp))
        End With
        For Each Cell In Plage
            var1 = Year(Cell.Value)
            var2 = Year(Date) - 55
            If Year(Cell.Value) > Year(Date) - 55 Then
                With Cell.Interior
                    .ColorIndex = 7
                    .Pattern = xlSolid
                End With
            End If
        Next Cell
    End Sub

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 475
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour Rahanin, Daniel, le forum

    Citation Envoyé par Rahanin Voir le message
    ...Petite question optionnelle: comment enregistrer cette macro de façon à pouvoir l'appeler sur n'importe quel classeur?
    ...
    Rahan
    Tu peux l'enregistrer dans le classeur de macro personnel.

    S'il n'existe pas (tu ne l'as jamais créé) le plus rapide (pas le plus orthodoxe ) :
    tu mets l'enregistreur macro en route
    tu demandes à enregistrer dans le classeur de macro personnel,
    tu fais une manip (clic sur une cellule)
    tu arrêtes l'enregistreur
    tu as le classeur et son module 1 : tu effaces la macro 1 et tu y copies le code de Daniel

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    En complément à la réponse de 78chris, il est préférable de modifier le code afin qu'il soit exécutable sur la feuille active et non pas sur la seule feuille Feuil1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub MizEnForm()
        Range("D:D,I:I,O:O,T:U,W:X").Delete Shift:=xlToLeft
     
        Application.ScreenUpdating = 0
        Set Plage = Range([H1], Cells(Rows.Count, "H").End(xlUp))
        For Each Cell In Plage
            If Year(Cell.Value) > Year(Date) - 55 Then
                With Cell.Interior
                    .ColorIndex = 7
                    .Pattern = xlSolid
                End With
            End If
        Next Cell
    End Sub

Discussions similaires

  1. Effacer des cellules en fonction de la date
    Par jarault dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/04/2008, 12h08
  2. condition pour colorer des cellules
    Par emillio dans le forum Excel
    Réponses: 18
    Dernier message: 15/03/2008, 07h34
  3. problème de coloration des cellules de string grid
    Par linda80 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/12/2007, 11h57
  4. Sommer des cellules en fonction du contenu d'autres cellules
    Par jnmab dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/12/2007, 22h05
  5. affichage des saisons en fonction de la date
    Par marlene.ln dans le forum Access
    Réponses: 4
    Dernier message: 26/02/2007, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo