IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

coloriage cellules problématique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 49
    Points : 25
    Points
    25
    Par défaut coloriage cellules problématique
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub bleu()
     
    'Colorie en bleu les lignes contenant "MAUVAIS" 
        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
     
    End Sub
    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

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 421
    Points : 16 265
    Points
    16 265
    Par défaut
    Bonjour

    As-tu vérifié en mode debug que
    • le code s'applique au bon classeur et au bon onglet ?
    • la valeur de i est correcte et permet donc le passage dans la boucle ?
    • l'adresse des cellules correspond bien à ce qui doit être analysé ?
    • ...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    Bonsoir,

    l utilisation de la mise en forme conditionnelle ne serait pas plus appropriée que du vba?

    Sinon je ne vois que 2 explications : la feuille active n'est pas la bonne, ou il n'y a pas de données dans la colonne A (qui sert dans ton code à connaitre le nb de lignes a boucler.

    Bonne soirée
    Séb
    Débutant, j’essaie de m’améliorer en essayant d'aider sur le forum
    Merci d’être indulgent sur le code ou réponse proposé je reçois volontiers les critiques qui me feront progresser, mais aussi un (ça fait toujours plaisir de savoir que l on a pu dépanner une personne ).

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Bonjour 78chris et sebing

    D'abord merci de vous intéresser à mon problème.

    J'ai testé le code en pas à pas:
    La variable i rmonte comme il faut du bas vers le haut du tableau.
    Pour la ligne qui recherche le texte j'ai bien le contenu des cellules concernées qui s'affiche (MAUVAIS ou BON suivant les cellules).
    Par contre pour la ligne qui est censée colorer, il semble quelle se contente d'afficher la valeur de couleur déjà présente dans les lignes traitées.

    Je joint un classeur exemple pour mieux visualiser mon souci. En Feuil1 se trouve la feuille avant traitement.
    En Feuil2 ce qui devrait être le résultat.

    Encore merci pour votre aide

    Bonne soirée
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 421
    Points : 16 265
    Points
    16 265
    Par défaut
    Bonjour

    MAUVAIS est écrit avec un espace devant dans la colonne D : on le voit en debug si on est attentif. Une fois les espaces enlevés, cela marche...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Bonjour le forum

    Effectivement Chris il y a un espace en colonne D.
    Je réclame un peu de tolérance car l’œil d'un expert confirmé 4 étoiles comme toi n'a pas la même
    attention qu'un basique débutant comme moi.
    Y a-t-il un moyen d'avoir un affichage plus clair du déroulement de chaque lignes de code plutôt
    que ces bulles que l'on fait apparaître en mode pas à pas en passant le pointeur sur une ligne.

    Voici mon bout de code modifié qui permet de faire le boulot en s'affranchissant des éventuels espaces:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    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
        Nex
    Merci Chris d'avoir mis le doigt sur mon problème.

    Bonne journée

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 421
    Points : 16 265
    Points
    16 265
    Par défaut
    Bonjour

    Je te conseille d'afficher la fenêtre des variables locales (menu Affichage du VBE). Ainsi tu suis l'évolution des variables comme i

    Tu peux aussi créer des espions : tu sélectionnes une expression, comme Range("A" & i).Offset(, 3), clic droit, ajouter un espion.

    Ces espaces auraient posé le même problème avec des formules ou des MFC. Conseil : régler le problème en amont avec la fonctionnalité Données, Validation.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 49
    Points : 25
    Points
    25
    Par défaut
    Re

    Chris j'ai essayé les espions, c'est formidable.
    L'espace qui m'a pourri la vie saute bien plus aux yeux.

    Merci de m'aider à progresser.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Re-Coloriage de cellules
    Par BOYVES dans le forum Excel
    Réponses: 11
    Dernier message: 14/04/2010, 18h26
  2. [XL-2003] Coloriage de cellules
    Par BOYVES dans le forum Excel
    Réponses: 2
    Dernier message: 05/04/2010, 14h42
  3. Planning et coloriage cellules
    Par Pierre67 dans le forum Excel
    Réponses: 3
    Dernier message: 20/11/2009, 18h23
  4. Probleme #VALEUR lors du coloriage d'une cellule
    Par Djaiffe dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 01/07/2008, 17h42
  5. coloriage de cellules
    Par léclaireur dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/04/2007, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo