Mise en forme conditionnelle excel

Résolu
kaka22 -  
Steefif Messages postés 526 Statut Membre -
Mise en forme conditionnelle sur plusieurs lignes avec valeurs differentes

Bonjour et merci d'avance pour votre aide

j'ai besoin de mettre une Mise en forme conditionnelle sur plusieurs lignes avec des valeurs differentes . je m'explique:

j'ai deux colonnes G ET H alors j'ai besoin que chaque ligne de la colonne H se colorie en rouge si sa valeur est strictement inferieur à la valeur que contient les memes lignes de la colonne G

Exemple:

Ligne N 10 si H10 < G10 alors la cellule H10 devient rouge et je veux que la condition soit valable pour toutes les lignes (sachant que les valeurs changent)

merci d'avance

9 réponses

  1. Steefif Messages postés 526 Statut Membre 19
     
    petit macro tu remplace 2 et 1 par :
    2-> colone à colorier
    1-> colone de comparaison

    Sub Macro2()
    '
    Dim i
    For i = 1 To 100
    Cells(i, 2).Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
    Formula1:="cells(i,1)"
    Selection.FormatConditions(1).Interior.ColorIndex = 3
    Next i

    End Sub

    La vie c'est comme une boite de chocolat, on ne sait jamais sur quoi on va tomber.
    0
    1. kaka22
       
      MERCI STEEFIF pour ta reponse mais j'ai essayé d'inserer ce macro mais j'y arrive pas
      peux tu detailler STP

      merci
      0
    2. Steefif Messages postés 526 Statut Membre 19
       
      je vais te faire une feuille excel ce matin avec un exemple je post des que c'ets fait
      0
  2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

    les mises en forme conditionnelle peuvent être précisées sans forcément passer par des macros VBA. Si vous regardez ici, vous devriez trouver votre bonheur.

    Cordialement.
    0
  3. kaka22
     
    MERCI steefif j'attends ton exemple :D
    chossette9 : j'ai deja essayé de passer par une mise en forme conditionnelle simple mais ça ne fonctionne que pour une ligne (les valeurs de la colonne G changent chaque ligne) alors il faudrait mettre une conditon pour chaque ligne sachant qu'il ya une centaine :(
    0
  4. Steefif Messages postés 526 Statut Membre 19
     
    Alors en fait voici l'exemple avec les colonnes G et H

    Sub Macro2()
    '
    Dim i
    For i = 1 To 100
        Cells(i, 8).Select
        Selection.FormatConditions.Delete
        If (Cells(i, 8).Value < Cells(i, 7).Value) Then
            Selection.Interior.ColorIndex = 3
        End If
    Next i
    
    End Sub
    


    donc 8 pour h
    et 7 pour g

    tu fais une nouvell macro que tu lances et pouf ca marche
    pour fair eune nouvelle macro :
    outil/macro/enregistrer
    tu arrete
    et tu remplaces le code généré dans visual basic par le code fourni

    si tu as des soucis dis le je dubloquerai

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kaka22
     
    MERCCCCCCIIIIIIIIIII té génial
    je teste ça et je te tiens au jus
    0
  7. kaka22
     
    au fait la macro ne fonctionne pas !!! ce qu'elle fait c'est de balayer toutes les lignes de la colonne H '(une par une) et colorie en rouge celles qui sont inferieur à G
    apres le balayage ,si je modifie une valeur elle n'est pas prise en compte (meme en relancant la macro :( )
    moi je veux que sa se fasse automatiquement sans de lancer la macro à chaque fois !!!

    merci d'avance
    0
  8. Steefif Messages postés 526 Statut Membre 19
     
    je vais regarder ça
    0
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    chossette9 : j'ai deja essayé de passer par une mise en forme conditionnelle simple mais ça ne fonctionne que pour une ligne (les valeurs de la colonne G changent chaque ligne) alors il faudrait mettre une conditon pour chaque ligne sachant qu'il ya une centaine :(

    Sélectionne toutes tes cellules en H avant de faire ta MFC, et fixe ta MFC sur la cellule active (la 1ère sélectionnée).
    Par exemple tu sélectionnes H2:H50 et ta MFC est :
    'inférieure à' =$G2

    eric
    0
    1. kaka'22
       
      j'ai deja essayé de faire ça mais ça fonctionne pas car ttes les cellules que j'ai selectionné (H2 : H50) deviennent rouge que si elles sont inferieur à =$G2 !!! Alors que chaque ligne x la cellule Hx doit dependre de la cellule Gx !!!
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Si ça fonctionne,
      seulement soit plus attentif à ce qui est écrit : =$G2 et non pas =$G$2 comme tu as dû l'écrire....
      0
    3. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Ta suggestion fonctionne, je viens de tester chez moi.
      0
    4. kaka'22
       
      yeeeeeeeeeeeeeeeeeeeeees ça fonctionne !!!!!!!
      ta raison c'était le petit dollard qui génait (donc ma condition restait fixé sur la valeur de la premiere cellule) merci infiniment les gars !!!!!
      steetif : merci aussi pour ta macro
      0
  10. Steefif Messages postés 526 Statut Membre 19
     
    bon alors dans ton visual basic suppriem la macro que je t'ai dit de creer

    dans ton visual basic dans l'arborescence de gauche tu as un truc qui s'appelle feuil1
    clique dedans et colle ca :
    Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim KeyCells As Range 
    Dim i 
    
    ' La variable KeyCells contient les cellules qui déclencheront 
    ' une alerte si elles sont modifiées. 
    Set KeyCells = Range("G1:H1000") 
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _ 
    Is Nothing Then 
    
    ' Changement de couleur si besoin 
    ' lorsque l'une des cellules désignées 
        For i = 1 To 100 
            Cells(i, 8).Select 
            Selection.Interior.ColorIndex = 0 
            If (Cells(i, 8).Value < Cells(i, 7).Value) Then 
                Selection.Interior.ColorIndex = 3 
            End If 
        Next i 
    End If 
    End Sub 
    
    


    test mais en théorie ça marche

    La vie c'est comme une boite de chocolat, on ne sait jamais sur quoi on va tomber.
    0
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Bonjour,

      ça fonctionne si tu le met dans 'ThisWorbook' et non pas dans 'Feuil1'
      0
    2. Steefif Messages postés 526 Statut Membre 19
       
      non dans this workbook chez moi ça marche pas
      ça marche que dans feuil1
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Tu as dû rater le message de 14h15 : pas besoin de macro pour ça..
      0
    4. Steefif Messages postés 526 Statut Membre 19
       
      l'important c'est que ca marche je savai spas faire sans macro
      et je savais pas faire declencher sur un changement d'une plage de cellule.
      ca m'a appris aussi quelquechose! =)
      0