macro pour effacer une couleur (motifs) et pas les autres

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

pascal21

XLDnaute Barbatruc
Sub ordre_donné() 'colore la cellule quand ordre transmis au chauffeur
With ActiveCell.Interior '.ColorIndex = 42
.ColorIndex = 0
.Pattern = xlGray8
.PatternColorIndex = xlAutomatic
End With
End Sub


Sub efface_couleur_ordre_transmis() 'efface la couleur de la macro ordre donné
Dim d As Range
For Each d In Range("A6:a1200")
If d <> "" Then
If d + 1 < Date Then 'variable nombre de jours
d.Offset(, 1).Resize(3, 10).Interior.ColorIndex = xlNone
End If
End If
Next d
End Sub
bonsoir
ces deux macros me permettent: pour la première de griser la cellule
pour la deuxième, de d'effacer la couleur de la cellule le lendemain
(oui je sais, c'est bizard )
en fait la couleur grise (motifs petits points) me signale si j'ai transmis au chauffeur ses ordres
le lendemain je n'ai plus besoin de l'info dans cette cellule
je souhaiterais n'effacer que la couleur (motifs) de cette macro car j'ai d'autres couleurs que je souhaite garder
donc ça devrait donner quelque chose comme
si la cellule contient
.ColorIndex = 0 .Pattern = xlGray8
.PatternColorIndex = xlAutomatic
alors effacer ce fond sinon passe ton chemin la macro lol!!
pouvez m'aider merci
 
Re : macro pour effacer une couleur (motifs) et pas les autres

Bonsoir Pascal,

Teste ce code :

Code:
With ActiveCell.Interior 'cellule à adapter
If .ColorIndex = -4105 And .Pattern = xlGray8 And .PatternColorIndex = -4105 _
  Then .ColorIndex = xlNone
End With
A+
 
Re : macro pour effacer une couleur (motifs) et pas les autres

bonjour job
oui merci, le code fonctionne tel quel
mais comment faire pour l'intégrer dans la deuxième macro
Sub efface_couleur_ordre_transmis() 'efface la couleur de la macro ordre donné, de la veilleDim d As Range
For Each d In Range("A6:a1200")
If d <> "" Then
If d.ColorIndex = -4105 And .Pattern = xlGray8 And .PatternColorIndex = -4105 Then
If d + 1 < Date Then 'variable nombre de jours
d.Offset(, 1).Resize(3, 10).Interior.ColorIndex = xlNone
End If
End If
End If
Next d
End Sub
j'ai fais ça mais j'ai une erreur référence incorrecte ou non qualifiée avec le mot Pattern surligné
 
Re : macro pour effacer une couleur (motifs) et pas les autres

Re,

Apparemment c'est de la plage d.Offset(, 1).Resize(3, 10) que tu veux effacer les motifs :

Code:
Sub efface_couleur_ordre_transmis() 'efface la couleur de la macro ordre donné
Dim d As Range, c As Range
For Each d In Range("A6:a1200")
  If d <> "" Then
    If d + 1 < Date Then 'variable nombre de jours
      For Each c In d.Offset(, 1).Resize(3, 10)
        If c.ColorIndex = -4105 And c.Pattern = xlGray8 And _
          c.PatternColorIndex = -4105 Then c.ColorIndex = xlNone
      Next
    End If
  End If
Next d
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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
483
Réponses
9
Affichages
583
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
872
Retour