Couleur de cellules et VBA
Résolu/Fermé
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
-
3 nov. 2018 à 11:07
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 - 3 nov. 2018 à 12:58
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 - 3 nov. 2018 à 12:58
A voir également:
- Récupérer le code couleur rgb d'une cellule excel
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Le code ascii - Guide
- Liste déroulante excel - Guide
- Verrouiller cellule excel - Guide
3 réponses
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
59
Modifié le 3 nov. 2018 à 11:22
Modifié le 3 nov. 2018 à 11:22
Bonjour,
c'est ça que tu cherches?
Pourquoi ne pas utiliser simplement la MFC?
While NumeroLigne < finligne If Range("E" & NumeroLigne).Value = "MRiviere" Then Range("B" & NumeroLigne).Interior.Color = RGB(0, 255, 0) Range("E" & NumeroLigne).Interior.Color = RGB(0, 255, 0) Range("F" & NumeroLigne).Interior.Color = RGB(0, 255, 0) end if NumeroLigne = NumeroLigne + 1 Wend
c'est ça que tu cherches?
Pourquoi ne pas utiliser simplement la MFC?
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
2
3 nov. 2018 à 12:12
3 nov. 2018 à 12:12
Merci,
Le code fonctionne mais je me demandais s'il était possible de faire encore plus court et ne pas répéter à chaque fois .Interior.Color = RGB(0, 255, 0).
Par exemple:
If Range("E" & NumeroLigne).Value = "MRiviere" Then Range("A" & NumeroLigne, "I" & NumeroLigne).Interior.Color = RGB(0, 255, 0)
Dans ce cas toutes les cellules contigües de "E" à "I" sont remplies en vert, la virgule sert de séparateur.
Entre les parenthèses après Then Range n'est il pas possible de mettre des séparateurs pour indiquer quelles cellules je veux remplir en vert?
Je n'ai pas pensé à la MFC et je ne vois pas quelle règle je devrais adopter.
Merci pour ton aide
Le code fonctionne mais je me demandais s'il était possible de faire encore plus court et ne pas répéter à chaque fois .Interior.Color = RGB(0, 255, 0).
Par exemple:
If Range("E" & NumeroLigne).Value = "MRiviere" Then Range("A" & NumeroLigne, "I" & NumeroLigne).Interior.Color = RGB(0, 255, 0)
Dans ce cas toutes les cellules contigües de "E" à "I" sont remplies en vert, la virgule sert de séparateur.
Entre les parenthèses après Then Range n'est il pas possible de mettre des séparateurs pour indiquer quelles cellules je veux remplir en vert?
Je n'ai pas pensé à la MFC et je ne vois pas quelle règle je devrais adopter.
Merci pour ton aide
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
3 nov. 2018 à 12:34
3 nov. 2018 à 12:34
bonjour, ceci?
Range("B" & NumeroLigne & ",E" & NumeroLigne & ",F" & NumeroLigne).Interior.Color = RGB(0, 255, 0)
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
2
3 nov. 2018 à 12:57
3 nov. 2018 à 12:57
Merci yg_be pour cette réponse qui me va très bien pour alléger mon code
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 3 nov. 2018 à 12:42
Modifié le 3 nov. 2018 à 12:42
Bonjour
Option Explicit
'--------------------
Sub MacroCouleur() 'Mettre des cellules en couleur en fonction du nom de l'établissement (MRiviere )dans la colonne E.
Dim finligne As Byte
Dim NumeroLigne As Byte
Dim Nbre As Byte, Cptr As Byte
finligne = ActiveSheet.UsedRange.Rows.Count + 1 'Variable nombre de lignes
NumeroLigne = 2 'Variable ligne en cours
'on ne boucle le nbre de fpois où il y a MRiviere
Nbre = Application.CountIf(Columns("E"), "MRiviere")
If Nbre > 0 Then
For Cptr = 1 To Nbre
NumeroLigne = Columns("E").Find("MRiviere", Cells(NumeroLigne, "E"), xlValues).Row
Range("B" & NumeroLigne & ",E" & NumeroLigne & ",F" & NumeroLigne).Interior.Color = RGB(0, 255, 0)
Next
End If
End Sub
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
2
3 nov. 2018 à 12:58
3 nov. 2018 à 12:58
Bonjour et merci pur cette réponse qui fonctionne aussi très bien d'une autre manière de coder et je retiens.