Mise en forme conditionnelle

  • Initiateur de la discussion pantanella
  • Date de début
P

pantanella

Guest
Pour mettre en forme conditionnelle il n'y a que trois possibilités, or j'ai besoin de cinq. Existe t il une solution ?

Merci.
 
C

coyote

Guest
J'ai eu ce souci également avec la formule SOMME.SI qui n'accepte qu'un critère

alors j'ai concaténer les critères (D1=A1 & B1 & C1) pour n'en faire qu'un dans une colonne (que l'on peut masqué à l'affichage)

il suffit de lier la condition aux cellules concaténées (ici D1)

Attention à préserver une logique de syntaxe dans le nouveau champs concaténer
 
P

pantanella

Guest
Je ne sais pas mais mon probléme est à priori autre. Je voudrait en rentrant une valeur en l'occurence une valeur de type (1à5)/mois/année qu'en fonction de la valeur du premier chiffre la couleur varie
1 = vert
2 = bleu
3 = jaune
4 = rouge
5 = gris

merci
 
T

Ti

Guest
voici un fichier que j'avais fait il y a quelque temps. Il devrait t'être possible de l'adapter à ton cas.
 

Pièces jointes

  • Couleurs_AutomatiquesTi.zip
    8.5 KB · Affichages: 11
  • Couleurs_AutomatiquesTi.zip
    8.5 KB · Affichages: 10
  • Couleurs_AutomatiquesTi.zip
    8.5 KB · Affichages: 10
C

coyote

Guest
jouuuuli Mister Ti (t'es balèse comme le gars de l'Agence Tous Risques ..... Désolé

Bon comme j'ai bossé un peu sur le sujet, je propose tout de même ma solution

*****

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim xcol, xcrit As Integer

xcol = ActiveCell.Column
xcrit = ActiveCell.Value

If xcol = 1 Then 'pour ne faire les conditions uniquement sur une colonne (ici 1 = colonne A)

Select Case xcrit 'condition si valeur cellule = 1 à 5
Case 1
Selection.Interior.ColorIndex = 10
Case 2
Selection.Interior.ColorIndex = 5
Case 3
Selection.Interior.ColorIndex = 6
Case 4
Selection.Interior.ColorIndex = 3
Case 5
Selection.Interior.ColorIndex = 16
Case Else
Selection.Interior.ColorIndex = xlNone

End Select

End If

End Sub

*****

L'inconvénient c'est que lorsque l'on saisit, la cellule testé est celle où l'on s'est déplacé. Ce n'est que en se replaçant sur la cellule que la modif fonctionne.

On pourrait faire un offset mais comment détecter le déplacement (droite, gauche, bas, haut) ??? ou alors s'orienter sur une autre méthode
 
P

pantanella

Guest
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False 'Pour désactiver la mise à jour de l'affichage

For Each c In Worksheets(1).Range("D10:K20")

If c.Value = 1 Then
c.Interior.ColorIndex = 4
c.Font.ColorIndex = 4
End If
If c.Value = 2 Then
c.Interior.ColorIndex = 5
c.Font.ColorIndex = 5
End If
If c.Value = 3 Then
c.Interior.ColorIndex = 6
c.Font.ColorIndex = 6
End If
If c.Value = 4 Then
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 3
End If
If c.Value = "nc" Or c.Value = "NC" Then
c.Interior.ColorIndex = 15
c.Font.ColorIndex = 15
c.Font.Bold = True
End If
If c.Value = "abs" Then
c.Interior.ColorIndex = 0
c.Font.ColorIndex = 0
c.Font.Bold = True
End If

If c.Value = "" Then
c.Interior.ColorIndex = 0
c.Font.ColorIndex = 0
c.Font.Bold = False
End If
Next c
Application.ScreenUpdating = True
End Sub



voila ce que j'ai mais cela plante alors que au debut cela fonctionner

qu'en pensez vous

merci

bonne année et meilleure santé à tous

pierre
 
D

Daniel

Guest
Bonsoir à toutes et à tous,

Je n'apporte pas de solutions mais plutôt une nouvelle interrogation qui, je pense, rejoint la première question.
Voyez par vous même... Ci-joint un petit Zip de mon planning horaire tronqué.

Merci et à bientôt.

Daniel
 

Pièces jointes

  • Daniel.zip
    6.4 KB · Affichages: 13
  • Daniel.zip
    6.4 KB · Affichages: 13
  • Daniel.zip
    6.4 KB · Affichages: 15

Discussions similaires

Statistiques des forums

Discussions
313 066
Messages
2 094 953
Membres
106 136
dernier inscrit
MilieBZH