Colorier des cellules sous condition en VBA
pat640
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour le forum,
Je suis novice en VBA....je ne suis plus tout jeune (mes facultés mentales commencent à me faire défaut!) et je me heurte à un pb sur un code, en fait je pense que je ne comprends pas ce que je fais....
J'ai deux colonnes disons la A et la B, dans la A j'ai des valeurs qui correspondent à une heure en format 0,00 et dans l'autre, j'ai des chiffres 0,1,2,etc...qui correspondent à J ou J+1 ou J+2,etc
J'ai besoin de colorier les cellules dans la colonne A selon sa valeur en fonction de la plage horaire et de la valeur de B en vis à vis de A:
vert de >16h00 à <= 9h00 pour b=0, b=1
jaune de > 9h00 à <=11h00 pour b=0, b=1
Bleu de >11h00 à <=14h00 pour b=0
Rouge de >14h00 à <=16h00 pour b=0
Si b>1 et A>11 pas de coloriage
J'ai une dizaine de cellules à identifier, voici une partie du code que j'avais écrit, mais rien ne s'inscrit, en fait je ne sais pas scruter deux colonnes simultanément...
'Colorier les cellules
Dim vCellule As Variant
Dim i As Range
Collection = Sheets(MaFeuille).Range(B3:B15)
For Each vCellule In Collection
If vCellule <= 1 Then
i = vCellule.Offset(-1, 0).Activate
Select Case i
Case 7.5 To 9
i.Interior.ColorIndex = 4
Case 9.01 To 11
i.Interior.ColorIndex = 27
Case 11.01 To 14
i.Interior.ColorIndex = 32
Case 14 To 16
i.Interior.ColorIndex = 3
Case Else
i.Interior.ColorIndex = xlNone
End Select
End If
Next
J'ai fait un petit fichier avec des couleurs mais je ne sais pas le lier merci pour votre aide
Cordialement
Patrick
Je suis novice en VBA....je ne suis plus tout jeune (mes facultés mentales commencent à me faire défaut!) et je me heurte à un pb sur un code, en fait je pense que je ne comprends pas ce que je fais....
J'ai deux colonnes disons la A et la B, dans la A j'ai des valeurs qui correspondent à une heure en format 0,00 et dans l'autre, j'ai des chiffres 0,1,2,etc...qui correspondent à J ou J+1 ou J+2,etc
J'ai besoin de colorier les cellules dans la colonne A selon sa valeur en fonction de la plage horaire et de la valeur de B en vis à vis de A:
vert de >16h00 à <= 9h00 pour b=0, b=1
jaune de > 9h00 à <=11h00 pour b=0, b=1
Bleu de >11h00 à <=14h00 pour b=0
Rouge de >14h00 à <=16h00 pour b=0
Si b>1 et A>11 pas de coloriage
J'ai une dizaine de cellules à identifier, voici une partie du code que j'avais écrit, mais rien ne s'inscrit, en fait je ne sais pas scruter deux colonnes simultanément...
'Colorier les cellules
Dim vCellule As Variant
Dim i As Range
Collection = Sheets(MaFeuille).Range(B3:B15)
For Each vCellule In Collection
If vCellule <= 1 Then
i = vCellule.Offset(-1, 0).Activate
Select Case i
Case 7.5 To 9
i.Interior.ColorIndex = 4
Case 9.01 To 11
i.Interior.ColorIndex = 27
Case 11.01 To 14
i.Interior.ColorIndex = 32
Case 14 To 16
i.Interior.ColorIndex = 3
Case Else
i.Interior.ColorIndex = xlNone
End Select
End If
Next
J'ai fait un petit fichier avec des couleurs mais je ne sais pas le lier merci pour votre aide
Cordialement
Patrick
A voir également:
- Vba colorier ligne sous condition
- Partager photos en ligne - Guide
- Excel cellule couleur si condition texte - Guide
- Mètre en ligne - Guide
- Ligne occupée - Forum SFR
- Aller à la ligne excel - Guide
1 réponse
Bonjour Pat l'ancien ;o)
essaies peut-^tre cette macro (j'ai adouci le bleu car on ne pouvait plus lire et j'ai considéré que les nombres dans la colonne B étaent en entiers, si réels tu passes dim ref as byte en Dim ref as single)
tu dis....
Michel
essaies peut-^tre cette macro (j'ai adouci le bleu car on ne pouvait plus lire et j'ai considéré que les nombres dans la colonne B étaent en entiers, si réels tu passes dim ref as byte en Dim ref as single)
Option Explicit
'----------
Sub colorier()
'vert de >16h00 à <= 9h00 pour b=0, b=1 _
jaune de > 9h00 à <=11h00 pour b=0, b=1 _
Bleu de >11h00 à <=14h00 pour b=0 _
Rouge de >14h00 à <=16h00 pour b=0 _
--------
Dim lig As Byte, Ref As Byte, heure As Range
With Sheets(1) 'A ADAPTER
.Range("A3:AB15").Interior.ColorIndex = xlNone
For lig = 3 To 15
Ref = .Cells(lig, "B")
If Ref = 0 Or Ref = 1 Then
Set heure = .Cells(lig, "A")
With heure
If Ref = 0 Then
If heure > 11 And heure <= 14 Then .Interior.ColorIndex = 33 'bleu
If heure > 14 And heure <= 16 Then .Interior.ColorIndex = 3 'rouge
End If
If heure > 9 And heure <= 11 Then .Interior.ColorIndex = 6 'jaune
If heure <= 9 Or heure > 16 Then .Interior.ColorIndex = 4 'vert
End With
End If
Next
End With
End Sub
tu dis....
Michel