Colonnes rouges oranges ou vertes...

ted69000

XLDnaute Junior
Bonjour à tous,
I need help because je suis une bille en VBA.
J'ai trois colonnes contigues "Validés", "En cours", "A faire"

L'opérateur doit pouvoir mettre une croix (Un X majuscule) dans l'une des trois colonnes seulement, et si on change d'état (Un X dans "En cours" alors qu'il était dans "A faire", le X dans "A faire" disparait, ou autrement dit une seule croix autorisée par ligne...).

De plus, je voudrais pour améliorer la lisibilité de la feuille, colorier la cellule dans laquelle on place un X, en rouge dans la colonne "A faire", en orange dans "En cours", et en vert dans "Validé", avec retour à la couleur d'origine si changement d'état.

Voilà, si ça inspire certains, je suis preneur et vous serai infiniment reconnaissant.
Merci à vous
Thierry
 

ted69000

XLDnaute Junior
Re : Colonnes rouges oranges ou vertes...

Bonjour Boisgontier (Jacques ?)
Content de te retrouver après ton intervention sur mon fil à propos de journal de log.
J'ai bien pensé à données/Validation, mais pour mettre le "X" !
Ma disposition en 3 colonnes d'une pierre 2 coups sert en même temps d'indicateur : plus la colonne "validée" est verte, mieux c'est !

Thierry

NB : Néanmoins, au cas où, est-ce que dans données validation, je peux forcer une couleur de cellule en plus de mon X ?

merci
 

ted69000

XLDnaute Junior
Re : Colonnes rouges oranges ou vertes...

Merci jacques

C'est un bon départ.
je vais l'adapter à mon système de "X".
Huum, malgré tout, me reste à résoudre l'énigme du test de la présence ou non d'un X sur les 2 colonnes coplémentaires, et de l'effacement éventuel...

Thierry
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Colonnes rouges oranges ou vertes...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect([B2:D100], Target) Is Nothing And Target.Count = 1 Then
    If Target = "X" Then
      Application.EnableEvents = False
      lig = Target.Row
      col = Target.Column
      Cells(lig, 2).Resize(, 3).ClearContents
      Cells(lig, 2).Resize(, 3).ClearFormats
      Cells(lig, col) = "X"
      Cells(lig, col).Interior.ColorIndex = Array(3, 4, 6)(col - 2)
      Application.EnableEvents = True
    End If
   End If
End Sub

JB
 

Pièces jointes

  • Classeur1.xls
    32.5 KB · Affichages: 68
  • Classeur1.xls
    32.5 KB · Affichages: 63
  • Classeur1.xls
    32.5 KB · Affichages: 67

ted69000

XLDnaute Junior
Re : Colonnes rouges oranges ou vertes...

génial !
J'ai pas trop pigé comment cela fonctionnait ! mais je l'ai adapté...
Je suis entrain de m'apercevoir qu'ainsi, le marqueur "X" est presque superflu...
J'ai essayé de forcer des attributs de texte dans chacune des colonnes (Gras, centré, et couleur de texte identique à couleur de fond), mais le texte inscrit d'aprés la liste de choix ne prend pas en compte les attributs de texte des cellules.
Comment faire ?

merci encore
Thierry
 

jmd2

XLDnaute Accro
Re : Colonnes rouges oranges ou vertes...

hello

si possible il est préférable d'utiliser une mise en forme conditionnelle pour les couleurs changeantes (facile).

et de stocker l'info importante dans une seule cellule "état d'avancement" qui prend 3 états (liste de validation, comme suggéré par BOISGONTIER au début)

Tu peux facultativement ajouter pour visualiser comme tu voulais
colonneencours=SI(colonneétatd'avancement="en cours";"X";"")
colonnevalidé=SI(colonneétatd'avancement="validé";"X";"")

Conseil issu des rtègles de gestion de bases de données.
Ca facilite toujours la vie pour plus tard quand tu dois faire évoluer ton fichier.
 

ted69000

XLDnaute Junior
Re : Colonnes rouges oranges ou vertes...

Egalement, j'ai une bonne trentaine d'onglets identiques avec mes trois colonnes, comment dois-faire :
1) faire du multi-plage dans la macro
2) faire autant de macro que d'onglets ? (pas très rationnel...)
Merci
 

ted69000

XLDnaute Junior
Re : Colonnes rouges oranges ou vertes...

Hello

Finalement, je fais un up sur ce fil car j'ai besoin de mettre en oeuvre son objet.
N'ayant pas trop compris le fonctionnement de la macro (J'ai essayé, si si...)
1) Ma plage par exemple est F2 H100, y'a un truc qui m'échappe !
2) Je voudrais de plus que le marqueur "X" apparaisse en noir, centré et en gras
3) Dernier détail : j'ai une alternance sur la feuille de lignes blanches et jaune clair (1 sur 2, pour faciliter la lecture). Or, la macro me restitue en cas de changement d'état une cellule blanche...Est il possible, comme dirait Souchon, de lui faire reprendre sa couleur d'origine ?

Merci d'avance
Ted
 

ted69000

XLDnaute Junior
Re : Colonnes rouges oranges ou vertes...

Bonjour à tous

encore un up car je n'ai pas de solution.
En bref, j'ai une macro qui colorie une cellule. (En fait, 3 colonnes contigues, 1ere rouge, seconde orange 3eme verte). Une seule cellule sur une même ligne peut être coloriée. Info sur une ligne en état R, O ou V.
La macro en cas de changement d'état doit donc effacer la précédente.

Or, et c'est là où sa se complique, mon tableau est une alternace de ligne blanche et jaune pale, pour amméliorer la lecture. La macro, elle, se borne à remettre en blanc les cellules.

Comment faire pour retrouver la couleur d'origine ?
Soit il faut la stocker avant le premier clic, soit on peut tester sur la même ligne, mais 3 colonnes à droite par exemple (colonne jamais coloriée). Mais ça, je ne sais pas faire...Suivez mon regard...

merci à vous tous
Thierry
 

ted69000

XLDnaute Junior
Re : Colonnes rouges oranges ou vertes...

Bonjour à tous, et à jacques

Merci jacques, mais j'ai encore besoin de toi :
Je souhaiterais que ta dernière macro fonctionne en F2:H100...
J'ai bien modifié la plage dans la macro, mais je ne l'ai pas entièrement comprise...
Merci à toi
Thierry
 

Discussions similaires

Statistiques des forums

Discussions
313 344
Messages
2 097 337
Membres
106 916
dernier inscrit
Soltani mohamed