Autres Cellule en couleur en fonction du contenu

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

alain18

XLDnaute Occasionnel
Bonsoir,
En VBA serait il possible de mettre les cellules d'une colonne en couleur en fonction d'un groupe de mots (NON PAYE) non contenu dans la cellule.
Le nombre de lignes concernées sera très variable.
Le fichier joint est plus explicite.
Merci de votre aide.
Bonne soirée.
 

Pièces jointes

Bonsoir,
Exemple a adapter
VB:
Sub Macro1()
'
For i = 5 To 20
    If Not Cells(i, 3) Like "*NON PAYE*" Then

    With Cells(i, 3).Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    End If
Next i
End Sub

cdt
 
Bonsoir alain18, le forum,

Mettre ce code dans le code de la feuille 1.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Byte
If Not Intersect(Range("C5:C" & Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Row), Target) Is Nothing And Target.Count = 1 Then
    For i = 5 To Cells(Rows.Count, 3).End(xlUp).Row
        If Not Cells(i, 3) Like "*" & "NON PAYE" Then Cells(i, 3).Interior.Color = 65535
    Next i
End If
End Sub

A+

Edit : bonsoir laurent950
 
Bonjour le fil,

Une variante
(sans doute l'influence de l'air du temps: Régime, régime, régime partout dans les magazines)
VB:
Sub Macro2()
Dim i&
For i = 5 To 20
Cells(i, 3).Interior.Color = IIf(InStr(Cells(i, 3), "NON PAYE"), xlNone, 65535)
Next i
End Sub
Et une autre variante (pour l'evenementielle)
VB:
Private Sub Worksheet_Change(ByVal T As Range)
If Not Intersect(T, Me.Columns("C:C")) Is Nothing And T.Row >= 5 Then
T.Interior.Color = IIf(InStr(T.Text, "NON PAYE"), xlNone, 65535)
End If
End Sub

NB: codes testés un dimanche matin, donc peut-être des effets de bord à l'usage 😉
 
Dernière édition:
Merci à tous
Cette coloration de cellule étant effectuée en fin d'une autre macro qui effectue des tris et des déplacements de colonnes, j’opterais pour les macros de Staple ou Laurent950 mais il faudrait que la consigne ne se limite pas à For i = 5 to 20 mais de la ligne 5 à la dernière cellule non vide de la colonne en question.
Si cela est possible bien sûr !
Cordialement.
 
Bonjour,

Merci à tous
Cette coloration de cellule étant effectuée en fin d'une autre macro qui effectue des tris et des déplacements de colonnes, j’opterais pour les macros de Staple ou Laurent950 mais il faudrait que la consigne ne se limite pas à For i = 5 to 20 mais de la ligne 5 à la dernière cellule non vide de la colonne en question.
Si cela est possible bien sûr !
Cordialement.

C'est exactement ce que fait mon code, mais il n'a pas l'air de t'intéresser plus que ça...
 
Hello mon ami,

Evidemment !
Ma remarque ne s'adressait pas à toi, et je suis content que tu reprennes mes codes comme tu as l'habitude de le faire, cela me permet de progresser.
D'ailleurs j'aurais pu penser à IIf, mais comme Instr ne me vient pas naturellement, du coup c'était difficile de penser à IIF...
Le serpent qui se mord la queue !

C'est sûr que je ne vais plus l'oublier ce sacré Instr ! 😉

Bonne journée 🙂
 
Bonjour,



C'est exactement ce que fait mon code, mais il n'a pas l'air de t'intéresser plus que ça...
Oui Calvus votre macro fonctionne parfaitement à chaque modification et jusqu'à la dernière cellule non vide sur un fichier simple sans autre macro qui précède, mais il faudrait qu'elle puisse se déclencher seulement à la fin d'une autre macro que j'ai mis en place et qui effectue des déplacements de colonnes, des créations de nouvelles colonnes avec des formules, etc....
Dans ces conditions, j'observe que votre macro a bien effectué son travail a un moment précis mais comme il y a des tris dans la colonne concernée ce sont toutes les cellules qui (en fin de ma macro) prennent la couleur jaune.
C'est la raison pour laquelle votre suggestion est parfaite mais à la fin de toutes modifications du fichier.
Cela n'est peut être pas possible.
Je tiens une nouvelle fois à vous remercier pour votre soutien.
 
Bonjour
Peut être une idée pour que la macro que vous proposez puisse s'effectuer jusqu'à la dernière cellule non vide ?
Merci.

Sub Macro2()
Dim i&
For i = 5 To 20
Cells(i, 3).Interior.Color = IIf(InStr(Cells(i, 3), "NON PAYE"), xlNone, 65535)
Next i
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
10
Affichages
221
Retour