coloriage cellules problématique

jp65

XLDnaute Junior
Bonjour le forum

Je suis confronté à un problème bizarre.
J'ai un bout de code qui est censé colorer les lignes d'un tableau en bleu si les cellules en C et D contiennent le texte MAUVAIS.
Celà fonctionne dans une macro "complète".
Je teste uniquement le bout de code seul et là rien ne se passe.
Je sèche complet.

Voici le bout de code:
Code:
'Colorie en bleu les lignes contenant "MAUVAIS" pour isoler les soucis diélectriques fantômes
    For i = Range("A" & Rows.Count).End(xlUp).Row To 4 Step -1
        If Range("A" & i).Offset(, 2) = "MAUVAIS" And Range("A" & i).Offset(, 3) = "MAUVAIS" Then
           Range("A" & i).Resize(, Range("A" & i).CurrentRegion.Columns.Count). _
           Interior.ColorIndex = 37 '37=bleu
        End If
    Next

Il n'y a aucune MFC dans le tableau qui pourrait éventuellement perturber le code.

Je m'en remet à vos expertises

Merci pour toute aide
 

JCGL

XLDnaute Barbatruc
Re : coloriage cellules problématique

Bonjour à tous,

Avec ce code il doit y avoir une valeur en colonne B pour colorier les quatre colonnes.

A+ à tous

Edition : Salut l'Agrafe...
 

Pièces jointes

  • JC Test CurrentRegion.xlsm
    89.9 KB · Affichages: 21
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : coloriage cellules problématique

Re, Bonjour JCGL

Bon tant pis pour le fichier exemple alors...
Ci-dessous avec ce code la colonne B peut être vide.
Code:
Sub a()
'Colorie en bleu les lignes contenant "MAUVAIS" pour isoler les soucis diélectriques fantômes
    For i = Range("A" & Rows.Count).End(xlUp).Row To 4 Step -1
        If Range("A" & i).Offset(, 2) = "MAUVAIS" And Range("A" & i).Offset(, 3) = "MAUVAIS" Then
           Range("A" & i).Resize(, Cells(i, Columns.Count).End(xlToLeft).Column). _
           Interior.ColorIndex = 37 '37=bleu
        End If
    Next
End Sub
 

jp65

XLDnaute Junior
Re : coloriage cellules problématique

Bonjour JCGL et staple 1600

Merci de vous intéresser à mon souci.

Staple 1600
le bout de code problématique fait parti du même programme que je tente de faire maigrir depuis mon dernier post.

Pour mieux cibler ma demande je joint un bout de classeur avec en Feuil1 l'avant et en Feuil2 ce qui devrait être
l'après.

JCGL
J'ai testé ta pièce jointe qui colore effectivement en bleu sur ton tableau.
J'ai aussi testé (sans succès) le bout de code de staple.

Encore merci et bonne soirée
 

Pièces jointes

  • Nouveau Feuille de calcul Microsoft Excel (2).xlsx
    13.2 KB · Affichages: 18
  • Nouveau Feuille de calcul Microsoft Excel (2).xlsx
    13.2 KB · Affichages: 21
  • Nouveau Feuille de calcul Microsoft Excel (2).xlsx
    13.2 KB · Affichages: 25

Staple1600

XLDnaute Barbatruc
Re : coloriage cellules problématique

Re

D'où l’intérêt du fichier exemple
(dans lequel il y des choses* en trop dans la colonne D ;))
Code:
Sub aTestOK()
'Colorie en bleu les lignes contenant "MAUVAIS" pour isoler les soucis diélectriques fantômes
Dim i&
With ActiveSheet
    For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
    If VBA.Trim(.Range("C" & i)) = "MAUVAIS" And VBA.Trim(.Range("D" & i)) = "MAUVAIS" Then
    .Range("A" & i).Resize(, Cells(i, Columns.Count).End(xlToLeft).Column).Interior.ColorIndex = 37
    End If
    Next
End With
End Sub

*:Je te laisse deviner ce que que je veux dire.
Observe bien quel est le premier caractère dans la colonne D
Ce n'est pas toujours un M ...:rolleyes:

PS: Sur mon PC, MAUVAIS était MAUVAIS et seulement MAUVAIS, donc mon code fonctionnait très bien. ;)
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : coloriage cellules problématique

Bonjour à tous,

Peux-tu essayer ceci :

Code:
Sub Test()
'Colorie en bleu les lignes contenant "MAUVAIS" pour isoler les soucis diélectriques fantômes
    Cells.Interior.ColorIndex = xlNone
    For i = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
        If Range("A" & i).Offset(, 2) Like "*MAUVAIS" Or Range("A" & i).Offset(, 3) Like "*MAUVAIS" Then
            Range(Cells(i, 1), Cells(i, Range("A" & i).CurrentRegion.Columns.Count)).Interior.ColorIndex = 37


        End If
    Next
    For i = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
        If Range("A" & i).Offset(, 2) Like "*BON" And Range("A" & i).Offset(, 3) Like "*BON" Then
            Range(Cells(i, 1), Cells(i, Range("A" & i).CurrentRegion.Columns.Count)).Interior.ColorIndex = 4
        End If
    Next
End Sub

A+ à tous
 

jp65

XLDnaute Junior
Re : coloriage cellules problématique

Re JCGL

J'ai adapté ton code car je n'ai pas besoin de traiter les textes "BON", j'ai uniquement gardé la partie qui colorie en bleu. J'ai également remplacé le Or par un And .
Maintenant ça marche, j'ai enfin ma couleur bleue qui revient.

Voici le code retouché:
Code:
For i = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
        If Range("A" & i).Offset(, 2) Like "*MAUVAIS" And Range("A" & i).Offset(, 3) Like "*MAUVAIS" Then
            Range(Cells(i, 1), Cells(i, Range("A" & i).CurrentRegion.Columns.Count)).Interior.ColorIndex = 37
        End If
    Next

Je t'envois un grand merci pour ta rapidité et ton aide efficace.
 

jp65

XLDnaute Junior
Re : coloriage cellules problématique

OUUUUUPS

Staple 1600
Au moment où tu lira ces lignes je serai en train de me pendre et je le referais tous les jours suivants.

Effectivement j'ai zappé ta réponse. Je suis non seulement un blaireau en vba mais en plus je suis miro.

Avant de me pendre donc j'ai testé ton code qui fonctionne parfaitement.

Un grand merci staple pour ton aide.

Et surtout bonne nuit ...........
 

jp65

XLDnaute Junior
Re : coloriage cellules problématique

Bonjour le forum

Staple 1600
Il y a en colonne D un espace qui a suffit à me pourrir la vie.
Après recherche sur google il semble que la fonction VBA.trim permet de supprimer (dans le code et non dans la cellule) les espaces.

Merci de ton aide

Bonne journée
 

Staple1600

XLDnaute Barbatruc
Re : coloriage cellules problématique

Bonjour 78chris ;)

Merci pour cette info (dommage que je ne le sache que maintenant)

jp65 AKA jpvba65
Merci de signaler quand tu multipostes ta question.
(en l'indiquant par un lien dans les forums respectifs où la question a été posée)
Si tu veux savoir pourquoi, voir ceci.
J'ajoute que cela évite de passer du temps à cogiter sur une question qui est peut-être résolue ailleurs
(Ce qui arrivera moins si on est informé en amont par un lien dans la discussion.)

[humeur personnelle]
Voici mon bout de code modifié qui permet de faire le boulot en s'affranchissant des éventuels espaces:
Je ne ferai pas de commentaire sur cette phrase* qui n'a pas la courtoisie de citer JCGL qui pourtant inspira ici le dit bout de code...
Non, insistez pas, je ne ferai pas de commentaires...
*: phrase lue à l'endroit précédemment indiquée par chris.
[/humeur personnelle]




 
Dernière édition:

jp65

XLDnaute Junior
Re : coloriage cellules problématique

Ouh la

Du calme je n'ai tué personne.

Ce n'est pas la première fois que je lance un sujet sur plusieurs forum.
A chaque fois je renseigne l'un ou l'autre suivant les réponses de l'un ou l'autre dans le but
d'aider ce qui peuvent êtres intéressés par le post.

Effectivement je n'ai pas cité JCGL quand j'ai transmis mon bout de code modifié, s'il a pu s'en offusquer
j'en suis désolé car ce n'était vraiment pas le but.

Lors de mon précédent post sur la barre de progression je t'ai indiqué la manière dont je faisais mes macros:
Il faut que je te dise que je ne suis qu'un débutant et que mon code est un aggloméra
de bout de codes fournis par de généreux forumistes
, trouvés sur le net, et aussi générés
par l'enregistreur de macro excel (rien que le quadrillage du tableau prend 39 lignes).

Je n'ai jamais tenté de me faire mousser avec le code des autres, encore une fois quand je joins un code
c'est dans le but d'aider.

A bon entendeur

Et bonne journée quand même
 

Discussions similaires

Réponses
2
Affichages
655

Statistiques des forums

Discussions
311 733
Messages
2 082 009
Membres
101 865
dernier inscrit
MLL