Besoin d'aide pettite macro excel (coloriage)

Résolu
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,
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Contributeur
    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
    1. 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
  2. Contributeur
    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
    1. Contributeur
      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
      1. Contributeur
        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
      2. @lermite222Merci infiniment, rapide efficace et super sympa
        0
      3. @lermite222Bonjour,

        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