Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Staple1600

XLDnaute Barbatruc
Re : coloriage cellules problématique

Bonjour à tous

jp65
Je teste uniquement le bout de code seul et là rien ne se passe.
Et nous on est censé tester sur quoi le bout de code ?
Sur ton fichier exemple joint par tes soins dans ton premier message ?
OK d'accord je teste ton fichier tout de suite...
 

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 ...

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.
 

Staple1600

XLDnaute Barbatruc
Re : coloriage cellules problématique

Re

jp65
Tu n'as pas testé le code de mon précédent message?
Ou tu ne m'as pas vu passé à 19h53 ?
Merci de me rassurer (sinon je vais mal dormir ce soir)
 

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:

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…