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 à +
A voir également:

4 réponses

g Messages postés 1285 Statut Membre 577
 

1
g Messages postés 1285 Statut Membre 577
 
Bonjour,

Tu trouveras un exemple sur http://gerard.g.pagesperso-orange.fr/logexl_09.htm#mise_forme_cond

Bonne journée.
0
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
winkel Messages postés 6 Statut Membre
 
T'es un chef, ca marche d'enfer.

Grand merci
0
g Messages postés 1285 Statut Membre 577
 
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