Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion sanigui
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sanigui

Guest
Bonjour,
je souhaite à l'aide d'une macro colorer certaines cellules en fonction de plusieurs conditions.
ci-dessous la macro que j'essai de mettre en place (et cela sur toute la colonne sélectionnée) :

Si A2 = rien alors rien
Si B2 = rien alors rien
Si A2 + 18 > Aujourdhui = Vrai
alors colorer case en rouge
sinon rien
Fin si
Fin si
Fin si

Avez-vous des solutions à me proposer ?
Merci
 
Re : Macro sur date

Bonjour, sanigui 🙂

colorer certaines cellules

- Pourriez- vous être un peu plus explicite, voire même joindre un un court exemple sur un fichier Excel sans données confidentielles, avec les différents cas, le résultat souhaité et les explications ?
- Avez-vous envisagé la mise en forme conditionnelle, en alternative au VBA ?
 
Re : Macro sur date

Bonjour à tous,

Pourquoi ne pas tout simplement utiliser une mise en forme conditionnelle (MFC) avec cette formule ? :
Code:
=SI(OU($A2="";$B2="");FAUX;SI($A2+18>AUJOURDHUI();VRAI;FAUX))

A+
 
Re : Macro sur date

Salut

=SI(A2="";"";SI(B2="";"";SI(A2>AUJOURDHUI()+18;"Vrai";"FAUX")))

Voilà, une formule si tu veux. ensuite tu peux mettre ta mise en forme conditionnel pour la couleur de ta cellule.

Cordialement
 
Re : Macro sur date

je veux créer une macro car la solution actuellement en place (mise en forme conditionnelle) est trop lourde....
De plus je me suis trompé dans la ligne c'est:
Si A2 + 18 < Aujourdhui = Vrai
 

Pièces jointes

Re : Macro sur date

Re-bonjour,

Voici la macro qui correspond à ton fichier exemple et non à ce que tu as écrit dans ton post #1 :
VB:
Sub relance()
    Dim i
    For i = 2 To Range("A65536").End(xlUp).Row
        If Cells(i, 1) + 18 < Date And Cells(i, 2) = "" Then Cells(i, 2).Interior.ColorIndex = 3
    Next
End Sub

En effet, dans ton post #1,
Si A2 = rien alors rien
Si B2 = rien alors rien
ce qui est différent dans ton fichier.

A+
 
Re : Macro sur date

le problème c'est que lorsqu'une case est vide (A21) la case de la colonne B est rouge alors que devrait restée "neutre".
 

Pièces jointes

Dernière modification par un modérateur:
Re : Macro sur date

Re-bonsoir,

Ce n'est pas une raison pour perdre les bonnes vieilles habitudes que sont bonjour ou bonsoir, merci, A+.

Voici cependant une correction du code :
VB:
Sub relance()
    Dim i
    For i = 2 To Range("A65536").End(xlUp).Row
        If Cells(i, 1) + 18 < Date And Cells(i, 2) = "" And Cells(i, 1) <> "" Then
            Cells(i, 2).Interior.ColorIndex = 3
        Else
            Cells(i, 2).Interior.ColorIndex = 0
        End If
    Next
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
323
Réponses
4
Affichages
586
Réponses
6
Affichages
636
Réponses
6
Affichages
342
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…