• Initiateur de la discussion Initiateur de la discussion fileofish
  • 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 !

fileofish

XLDnaute Occasionnel
Bonjour à tous!
Tout d'abord bon week end à tous pour ceux qui font le pont vous avez bien de la chance 🙂
J'ai un petit problème j'aurais souhaiter avoir une macro pour une MFC:
(je ne souhaite pas me servir de la MFC à partir d'excel car il faut que je le duplique sur plusieurs fichiers... une macro serait plus efficace)

Dans une plage de données des dates du jour qui vont de AA2 à AA15
Dans une plage de données des dates d'envoi qui vont de AB2 à AB15
Dans une plage de données des dates de relance qui vont de AC2 à AC15
Dans une plage de données des dates de relance2 qui vont de AD2 à AD15

1/J'aurais souhaité que si les dates de relance sont supérieures de 20 jour à la date d'envoi elles se mettent en rouge si la date du jour est remplie

2/J'aurais souhaité que si les dates de d'envoi sont supérieures de 60 jour à la date d'aujourd'hui elles se mettent en rouge également

J'espère que vous pourrez m'aider
D'avance merci
Philippe
 
Re : Macro MFC

Bonjour Fileofish, bonjour le forum,

Je te propose la macro suivante :

Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim pl As Range 'déclare la variable pl (PLage)
 
Set pl = Range("AC2:AC15") 'définit la variable pl
 
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    'si la relance 1 est supérieure à la date du jour +20, couleur rouge, sinon aucune couleur
    cel.Interior.ColorIndex = IIf(cel.Value > cel.Offset(0, -2).Value + 20, 3, xlNone)
    'si la relance 2 est supérieure à la date du jour +20, couleur rouge, sinon aucune couleur
    cel.Offset(0, 1).Interior.ColorIndex = IIf(cel.Offset(0, 1).Value > cel.Offset(0, -2).Value + 20, 3, xlNone)
    'si la date d'envoi est supérieure à la date du jour +60, couleur rouge, sinon aucune couleur
    cel.Offset(0, -1).Interior.ColorIndex = IIf(cel.Offset(0, -1).Value > cel.Offset(0, -2).Value + 60, 3, xlNone)
Next cel
End Sub
 
Re : Macro MFC

Hello Fileofish, Robert,

Ou bien celle-ci à placer dans le code de la feuille.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim c As Variant
    Dim d As Variant

    For Each c In Range("C2:C" & Range("C65536").End(xlUp).Row) 'Dates relance
        If c.Value > c.Offset(0, -1).Value + 20 Then
            c.Font.ColorIndex = 3
        Else
            c.Font.ColorIndex = 0
        End If
    Next c
    
    For Each d In Range("B2:B" & Range("B65536").End(xlUp).Row) 'Dates d'envoi
        If d.Value > d.Offset(0, -1).Value + 60 Then
            d.Font.ColorIndex = 3
        Else
            d.Font.ColorIndex = 0
        End If
    Next d
    
End Sub
Cdt, Hulk.
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
363
Réponses
12
Affichages
818
Réponses
4
Affichages
596
Retour