Besoin d'aide pettite macro excel (coloriage)

Résolu/Fermé
O2b Messages postés 6 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 6 novembre 2008 - 3 nov. 2008 à 10:46
O2b Messages postés 6 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 6 novembre 2008 - 4 nov. 2008 à 09:31
Bonjour,

Ca y est, voila enfin mes premiers pas dans la programmation. Tout d'abord, bonjour à tous les programmateurs et programmatrices. Je sius en plein projet de gmao et petit à petit je vais sûrement avoir besoin de votre aide et de vos comptétences.

Voila mon premier problème : J'ai mis en place une petite macro dans une feuille Excel permettant de colorier les lignes de trois couleurs différentes suivant trois instructions différentes, à savoir la lettre P, C et HC. Cependant cette macro me colorie les lignes entières. Je voudrais juste colorier les lignes de la cellule A jusqu'à la cellule I. Qulequ'un popurrait me cooriger ma pette macro SVp.


Sub Bouton1_Clic()
Dim c As Range

For Each c In ActiveSheet.Range("i1:i200")
If UCase(c) = "P" Then
c.EntireRow.Interior.Color = RGB(0, 255, 0)
ElseIf UCase(c) = "C" Then
c.EntireRow.Interior.Color = RGB(255, 0, 0)
ElseIf UCase(c) = "HC" Then
c.EntireRow.Interior.Color = RGB(255, 255, 0)
ElseIf UCase(c) = "" Then
c.EntireRow.Interior.Color = RGB(255, 255, 255)
End If
Next
End Sub


COrdialement,

O2b,
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
3 nov. 2008 à 16:44
Bonjour,

voici une solution avec une autre méthode

Option Explicit

Sub Bouton1_Clic()
Dim c As Range, cellule As Range
Dim lig As Byte

Application.ScreenUpdating = False
For Each c In ActiveSheet.Range("i1:i200")
    c = UCase(c)
    lig = c.Row
    Set cellule = Range(Cells(lig, 1), Cells(lig, 9))
    Select Case c
        Case "P"
            cellule.Interior.Color = RGB(0, 255, 0)
        Case "C"
            cellule.Interior.Color = RGB(255, 0, 0)
        Case "HC"
            cellule.Interior.Color = RGB(255, 255, 0)
        Case ""
            cellule.Interior.Color = RGB(255, 255, 255)
    End Select
Next
End Sub
0
O2b Messages postés 6 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 6 novembre 2008
4 nov. 2008 à 09:25
Bonjour,

Quel bonheur de trouver des réponses aussi rapidement. Merci beaucoup pour votre aide. Reste plus qu'à moi de comprendre votre solution mais en tout cas, elle fonctionne à merveille.
Cordialement,

O2b

P.S: J'ai posté un deuxième message concernant une aide macro pour la copie de chacunes de ces lignes dans trois classeurs distincts. Soit respectivement, chaque fois qu'une ligne est coloriée en rouge (ceci est un exemple), elle est automatiquement recopiée dans son tableau respectif, à savoir taleau Correctif pour couleur rouge (Onglet se trouvant dans le même classeur).
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
3 nov. 2008 à 17:09
Bonjour, Bonjour Michel
Très bonne solution, et peut-être par facilité remplacer les lignes
cellule.Interior.Color = RGB(255, 255, 255)
par
cellule.Interior.ColorIndex =2 (de 1 à 48) les couleurs excel
A+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
3 nov. 2008 à 17:22
Bonjour Lermite, re O2B

A propos de couleur;
Ci-joint classeur trouvé il y a longtemps 'chaipuhou" sur le net bien pratique: à mettre dans son grenier perso.
https://www.cjoint.com/?ldrqeVsmER

bonne soirée
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
3 nov. 2008 à 17:51
Re Michel,
Oui, intèressant mais il y a longtemps que je me suis fait un .Exe qui me permet de traduire tout ces nombres, sauf les index excel.
Cordialement.
0
O2b Messages postés 6 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 6 novembre 2008 > lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
4 nov. 2008 à 09:28
Merci infiniment, rapide efficace et super sympa
0
O2b Messages postés 6 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 6 novembre 2008 > lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
4 nov. 2008 à 09:31
Bonjour,

Quel bonheur de trouver des réponses aussi rapidement. Merci beaucoup pour votre aide. Reste plus qu'à moi de comprendre votre solution mais en tout cas, elle fonctionne à merveille.
Cordialement,

O2b

P.S: J'ai posté un deuxième message concernant une aide macro pour la copie de chacunes de ces lignes dans trois classeurs distincts. Soit respectivement, chaque fois qu'une ligne est coloriée en rouge (ceci est un exemple), elle est automatiquement recopiée dans son tableau respectif, à savoir taleau Correctif pour couleur rouge (Onglet se trouvant dans le même classeur).
0