Colorer des lignes , macro !

Résolu
DJ FA Messages postés 57 Statut Membre -  
DJ FA Messages postés 57 Statut Membre -
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

  1. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
     
    Bonjour,

    La mise en forme conditionnelle devrait répondre à ton problème.

    A+

    pépé
    0
    1. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
       
      Voici un lien vers ton fichier modifié

      https://www.cjoint.com/?BLbpB30oYOX

      A+

      pépé
      0
  2. DJ FA Messages postés 57 Statut Membre
     
    Merci pour ton fichier, mais j'ai bien parlé de macro, je ne veux pas de MFC.
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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

    0
  4. DJ FA Messages postés 57 Statut Membre
     
    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
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

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

      eric
      0
    2. DJ FA Messages postés 57 Statut Membre
       
      Ok mais si la valeur se situe entre les deux ?
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
      0
    4. DJ FA Messages postés 57 Statut Membre
       
      Superbe, merci beaucoup !
      0
    5. DJ FA Messages postés 57 Statut Membre
       
      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.
      0