Colorer les cellules d'un tableau (en VBA) sous conditions

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

BChaly

XLDnaute Occasionnel
Bonsoir à tous,

Y-a-t-il une possibilité, (en VBA), de colorer les colonnes de 3 tableaux, dans trois feuilles différentes, sous 2 conditions? Les trois conditions des MFC ne sont plus disponibles.

Dans la macro suivante (qui fonctionne), je n'ai pas de solution pour la deuxième condition: (Si cellule A10 est vide, alors aucune cellule ne devrait être colorée sur la ligne 10).

Merci pour votre aide.

Cordialement,

Chaly

**************************************************************
Code dans "module 1":

Sub ColorRange()
ColorCell Range("B4:AF5")
End Sub

Sub ColorCell(Rge As Range)
Dim i As Integer
Dim Cell As Range
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Sheets
Ws.Range("A4:AF40").Interior.ColorIndex = xlNone
For Each Cell In Ws.Range("A4:AF40")
For i = 1 To 37
If Cell.Value = "Sa" Or Cell.Value = "Di" Then Cell.Resize(37, 1).Interior.ColorIndex = 15

'***************************************************************
'La ligne suivante (Condition sur la colonne A) ne fonctionne malheureusement pas:
'If Cell.Value = "Sa" Or Cell.Value = "Di" And Cell.Range("A6:A40").Value <> "" Then Cell.Offset(i - 1, 0).Interior.ColorIndex = 15
'***************************************************************

Next i
Next Cell
Next Ws
End Sub
 

Pièces jointes

Re : Colorer les cellules d'un tableau (en VBA) sous conditions

Bonsoir
Le paramètre n'étant pas utilisable, je l'ai enlevé et n'ai laissé qu'une procédure :
VB:
Sub ColorCell()
Dim Cell As Range, Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
   Ws.[B4:AF40].Interior.ColorIndex = xlNone
   For Each Cell In Ws.[B4:AF4]
      If Cell.Value = "Sa" Or Cell.Value = "Di" Then Cell.Resize(37).Interior.ColorIndex = 15
      Next Cell
   For Each Cell In Ws.[A6:A40]
      If Cell.Value = "" Then Cell.Resize(, 32).Interior.ColorIndex = xlNone
      Next Cell
   Next Ws
End Sub

À +
 
Re : Colorer les cellules d'un tableau (en VBA) sous conditions

Bonsoir,

Absolument Génial!!! Immense Merci à vous.

Une dernière question: Si j'ajoute des lignes supplémentaires, est-il possible qu'elles soient prises en compte automatiquement?

Bonne soirée,

Cordialement
 
Re : Colorer les cellules d'un tableau (en VBA) sous conditions

En le réécrivant comme ça :
VB:
Sub ColorCell()
Dim Cell As Range, Ws As Worksheet, PlageJ As Range, NbLig As Long
For Each Ws In ThisWorkbook.Worksheets
NbLig = Ws.[A65536].End(xlUp).Row - 5
Set PlageJ = Ws.[B4:AF4]
PlageJ.Resize(NbLig).Interior.ColorIndex = xlNone
For Each Cell In PlageJ
If Cell.Value = "Sa" Or Cell.Value = "Di" Then Cell.Resize(NbLig).Interior.ColorIndex = 15
Next Cell
For Each Cell In Ws.[A6].Resize(NbLig - 2)
If Cell.Value = "" Then Cell.Resize(, 32).Interior.ColorIndex = xlNone
Next Cell
Next Ws
End Sub
Bonne nuit.
 
Re : Colorer les cellules d'un tableau (en VBA) sous conditions

Bonsoir,

Merci d'avoir regardé le problème. Malheureusement j'ai ajouté des lignes, et lorsque le tableau comporte plus de 40 lignes, les 2 dernières lignes supplémentaires ne sont pas prises en compte.

Bonne soirée,

Cordialement
 
Dernière édition:
Re : Colorer les cellules d'un tableau (en VBA) sous conditions

Réessayez comme ça :
VB:
Sub ColorCell()
Dim Cell As Range, Ws As Worksheet, PlageJ As Range, NbLig As Long
For Each Ws In ThisWorkbook.Worksheets
   NbLig = Ws.[A65536].End(xlUp).Row - 3
   Set PlageJ = Ws.[B4:AF4]
   PlageJ.Resize(NbLig).Interior.ColorIndex = xlNone
   For Each Cell In PlageJ
      If Cell.Value = "Sa" Or Cell.Value = "Di" Then Cell.Resize(NbLig).Interior.ColorIndex = 15
      Next Cell
   For Each Cell In Ws.[A6].Resize(NbLig - 2)
      If Cell.Value = "" Then Cell.Resize(, 32).Interior.ColorIndex = xlNone
      Next Cell
   Next Ws
End Sub
À +
 
- 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

Réponses
1
Affichages
468
Réponses
0
Affichages
381
Retour