Excel mise en forme conditionnelle en vba

winkel Messages postés 6 Statut Membre -  
g Messages postés 1285 Statut Membre -
Bonjour à tous,

J'ai des mise en formes conditionelles différentes sur plusieurs feuilles. Elles marches bien, mais dès que je fais des copier/coller ou deplacements je perds les mise en formes.
Ma question:

peut-on en vba dire pour une feuille particulière faire =>:

si les valeurs de "F5 à F34"
est supérieur à "F4" => mettre la cel en rouge et la valeur gras+blanc
est inférieur à "F4/2" => mettre la val. en rouge+gras

la même chose pour les col.

si les valeurs de "G5 à G34"
est supérieur à "G4" => mettre la cel en rouge et la valeur gras+blanc
est inférieur à "G4/2" => mettre la val. en rouge+gras

Jusquà "AAE"

Merci à +
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. g Messages postés 1285 Statut Membre 578
     

    1
  2. winkel Messages postés 6 Statut Membre
     
    Merci,

    Très sympa ce lien à garder en mémoire (pour tous)

    C'est preesque ca. Mais si tu modifies la valeur de "F4" la mise en forme ne marche pas?

    Merci
    0
  3. winkel Messages postés 6 Statut Membre
     
    T'es un chef, ca marche d'enfer.

    Grand merci
    0
    1. g Messages postés 1285 Statut Membre 578
       
      ReBonjour,

      Je poste à nouveau le code qui te convient.

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      For i = 5 To 34 'rangées de 5 à 34
      'condition 1
      If Range("F" & i) > Range("F4") Then 'colonne F
      Range("F" & i).Interior.ColorIndex = 3 'colonne F fond Rouge
      Range("F" & i).Font.ColorIndex = 2 'colonne F texte blanc
      Range("F" & i).Font.FontStyle = "gras" 'colonne F texte gras
      'condition 2
      ElseIf Range("F" & i) < Range("F4") / 2 Then 'colonne F
      Range("F" & i).Font.ColorIndex = 3 'colonne F texte rouge
      Range("F" & i).Font.FontStyle = "gras" 'colonne F texte gras
      'Pour annuler la couleur des cellules modifiées
      ElseIf Range("F" & i) < Range("F4") Then 'colonne F
      Range("F" & i).Interior.ColorIndex = xlNone 'colonne F cellule sans couleur
      Range("F" & i).Font.ColorIndex = xlAutomatic 'colonne F texte auto
      Range("F" & i).Font.FontStyle = xlAutomatic 'colonne F texte auto
      End If
      Next i
      End Sub

      Mais sache qu'il y a rique de superposition des formats car les données peuvent entrer en concurrence.
      En effet le contenu d'une cellule peut à la fois être > F4 et < F4/2.

      Bonne continuation.
      0