Besoin d'aide pettite macro excel (coloriage)

Résolu
O2b Messages postés 6 Statut Membre -  
O2b Messages postés 6 Statut Membre -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. O2b Messages postés 6 Statut Membre
       
      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. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      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
      1. O2b Messages postés 6 Statut Membre > lermite222 Messages postés 9042 Statut Contributeur
         
        Merci infiniment, rapide efficace et super sympa
        0
      2. O2b Messages postés 6 Statut Membre > lermite222 Messages postés 9042 Statut Contributeur
         
        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