Macro sur date

sanigui

XLDnaute Nouveau
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
 

Victor21

XLDnaute Barbatruc
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 ?
 

sanigui

XLDnaute Nouveau
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

  • test.xlsx
    8.8 KB · Affichages: 36
  • test.xlsx
    8.8 KB · Affichages: 36
  • test.xlsx
    8.8 KB · Affichages: 35

Fred0o

XLDnaute Barbatruc
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+
 

sanigui

XLDnaute Nouveau
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

  • test.xls
    34 KB · Affichages: 36
  • test.xls
    34 KB · Affichages: 37
  • test.xls
    34 KB · Affichages: 37
Dernière édition:

Fred0o

XLDnaute Barbatruc
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+
 

Discussions similaires

Statistiques des forums

Discussions
312 368
Messages
2 087 669
Membres
103 633
dernier inscrit
Surfer