Colorer des lignes , macro !

Résolu
Bonjour, j'aimerais qu'avec une macro (pas sur la feuille) que les lignes ou se trouve un 5 en colonne 2 soient colorées en vert et là ou il y a un B en jaune. Merci à vous.

http://ti1ca.com/34cllrcm-essai.xls.html

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Merci pour ton fichier, mais j'ai bien parlé de macro, je ne veux pas de MFC.
    1. Contributeur
      Bonjour
      Option Explicit
      
      Sub colorier_5ouB_en_colB()
      Dim derlig As Integer, lig As Integer
      
      Application.ScreenUpdating = False
      derlig = Columns("B").Find("*", , , , , xlPrevious).Row
      For lig = 2 To derlig
           Select Case Cells(lig, "B")
                Case Is = 5
                     Rows(lig).Interior.ColorIndex = 36
                Case Is = "B"
                     Rows(lig).Interior.ColorIndex = 35
                End Select
      Next
      End Sub

      1. Bonjour, merci michel, ta macro fonctionne très bien, mais désolé j'ai omis une chose c'est que dans la colonne B il peut y avoir le B ou le 5 accompagnés d'autres valeurs, peux-tu modifier le fichier joint.

        http://ti1ca.com/p7samhvm-essai.xls.html

        <config>Windows 8 / Firefox 17.0</config
        1. Contributeur
          Bonjour,

          Tu as mis ces caractères à chaque fois en début de chaine donc :
          Select Case Left(Cells(lig, "B"), 1)

          eric
        2. Ok mais si la valeur se situe entre les deux ?
        3. Contributeur
          il faut mettre tous les cas de figure dans un exemple...
          entre les deux quoi ??? entre B et 5 ?

          Je suppose en n'importe quelle position... :
          Sub colorier_5ouB_en_colB()
              Dim derlig As Integer, lig As Integer
              Application.ScreenUpdating = False
              Rows.Interior.ColorIndex = xlNone
              derlig = Columns("B").Find("*", , , , , xlPrevious).Row
              For lig = 2 To derlig
                  If InStr(Cells(lig, "B"), 5) > 0 Then
                      Rows(lig).Interior.ColorIndex = 36
                  ElseIf InStr(Cells(lig, "B"), "B") > 0 Then
                      Rows(lig).Interior.ColorIndex = 35
                  End If
              Next
          End Sub

          Par ailleurs il manquait une ligne de code pour réinitialiser la couleur à 'aucune'

          eric
        4. Superbe, merci beaucoup !
        5. Je viens de m'apercevoir d'une chose, c'est que les lignes sont colorées jusqu'au bout, j'essaye mais je n'arrive pas à modifier la macro pour ne colorer que les cellules qui sont pleines.