Colorer des cellules à l'aide d'une macro
Fermé
balata9
-
14 juin 2010 à 15:50
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 - 14 juin 2010 à 17:29
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 - 14 juin 2010 à 17:29
A voir également:
- Colorer des cellules à l'aide d'une macro
- Excel colorer une cellule sous condition d'une autre cellule ✓ - Forum Excel
- Macro logiciel - Télécharger - Organisation
- Colorer cellule excel sous condition - Guide
- Protéger des cellules excel - Guide
- Macro recorder - Télécharger - Confidentialité
3 réponses
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
14 juin 2010 à 16:05
14 juin 2010 à 16:05
Bonjour,
Il faut replacer l'affectation de la valeur à la variable au bon endroit :
En gras les principales modifications :
Sub ProblemeSonde()
Dim i As Long
Dim j As Long
Dim CENTRALE_FAIBLE As String
Dim CENTRALE_PROB_SONDE As String
Dim REF As Long
i = 26 'début de la colonne des sites à faibles productibles ou ratios'
j = 48 'début de la colonne des sites avec problèmes de sondes'
For i = 26 to ??? 'je ne sais pas à quelle ligne s'arrête les sites
CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Value
For j = 48 To 300
CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("J" & j).Value
If CENTRALE_FAIBLE = CENTRALE_PROB_SONDE Then
ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Interior.Color = RGB(255, 255, 0)
Else
ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Interior.Color = RGB(255, 255, 255)
End If
Next j
Next i
End Sub
Ca doit marcher tel quel une fois que tu as rentré la limite des i
Ben
Il faut replacer l'affectation de la valeur à la variable au bon endroit :
En gras les principales modifications :
Sub ProblemeSonde()
Dim i As Long
Dim j As Long
Dim CENTRALE_FAIBLE As String
Dim CENTRALE_PROB_SONDE As String
Dim REF As Long
i = 26 'début de la colonne des sites à faibles productibles ou ratios'
j = 48 'début de la colonne des sites avec problèmes de sondes'
For i = 26 to ??? 'je ne sais pas à quelle ligne s'arrête les sites
CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Value
For j = 48 To 300
CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("J" & j).Value
If CENTRALE_FAIBLE = CENTRALE_PROB_SONDE Then
ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Interior.Color = RGB(255, 255, 0)
Else
ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Interior.Color = RGB(255, 255, 255)
End If
Next j
Next i
End Sub
Ca doit marcher tel quel une fois que tu as rentré la limite des i
Ben
Ben, merci por ton aide cependant j'ai toujours un petit problème. La macro colorent en jaune lors que les cellules sont vides par contre lorsque les cellules ont le même texte, elles ne les colorent pas en jaune. Je ne comprend pas pourquoi.
ben13.51
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
Modifié par ben13.51 le 14/06/2010 à 17:30
Modifié par ben13.51 le 14/06/2010 à 17:30
Si c'est du texte que tu compare enlève le .value de ces deux lignes en les laissant au même endroit
CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Value
CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("J" & j).Value
si tu ne souhaites pas que les cellules soient colorées lorsqu'elles sont vides rajoute la condition dans le if:
If CENTRALE_FAIBLE = CENTRALE_PROB_SONDE And CENTRALE_FAIBLE<> "" Then ...
CENTRALE_FAIBLE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("B" & i).Value
CENTRALE_PROB_SONDE = ThisWorkbook.Worksheets("TABLEAU DE CONTROLE").Range("J" & j).Value
si tu ne souhaites pas que les cellules soient colorées lorsqu'elles sont vides rajoute la condition dans le if:
If CENTRALE_FAIBLE = CENTRALE_PROB_SONDE And CENTRALE_FAIBLE<> "" Then ...