Mise en forme conditionnelle d'une colonne

25exemple.xlsx (11.49 Ko)

Bonsoir à tous,

Je salue la communauté et je vous remercie d'avance pour votre aide.

Pour une fois, je prend la peine de poser une question car j'ai un cas qui ne semble pas répertorié

L'explication par exemple me semble plus simple : il est en pièce jointe

Ce que je veux faire :

Pour chaque ligne "faire le plein" les colonnes "type de bonbons" et "quantité" se grisent et on ne peut plus rentrer de données afin que les statistiques sur les transports de bonbons ne soient pas polluées (est-ce possible ?).

Il faut savoir que dans validation données de "type de bonbons", il y a une liste déroulante qui ne devrait pas apparaître si c'est "faire le plein"

Ce que j'ai essayé :

J'ai essayé la mise en forme conditionnelle mais ça me grise toutes les deux colonnes et ceci que si c'est le premier motif qui est "faire le plein".

J'ai aussi peur que dans tous les cas, les TCD qui en dépendent de mon tableau risquent de considérer quand même les données vides comme des 0 et des classes supplémentaires.

Si je ne suis pas clair, dites le moi, je réexpliquerais.

Merci d'avance

Bonjour

Avec un Code de Feuille (que les pros amélioreront si besoin)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("d2:d8")) Is Nothing Then
If Target = "Faire le plein" Then
Target.Offset(0, 1).Select
With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
    End With
    With Selection.Interior
        .ColorIndex = 16
        .Pattern = xlSolid
    End With
    Selection.Offset(0, 1).Interior.ColorIndex = 16
ElseIf Target <> "Faire le plein" Then
Target.Offset(0, 1).Select
With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=$K$5:$K$6"
    End With
    With Selection.Interior
        .ColorIndex = xlNone
    End With
    Selection.Offset(0, 1).Interior.ColorIndex = xlNone
End If
End If
Target.Select
End Sub

Cordialement

31exemple.zip (12.33 Ko)

Un grand merci pour ce code qui m'a coupé le souffle rien qu'en le voyant. Tu es génial.

Rien qu'en le décryptant, j'ai doublé mon niveau de VBA ce qui n'est pas dur quand on part de pas grand chose.

Je suis déjà presque comblé mais s'il était possible, il faudrait y rajouter 3 choses:

  • Il faudrait que quand les cellules soient grisées, il soit impossible d'y écrire
  • Il faudrait qu'au moment où la cellule se grise, le texte déjà présent s'efface
  • que cela s'applique non seulement pour une colonne (d2:d8 dans ce cas) mais pour une colonne de tableau. J'imagine que renommer la colonne et l'intégrer dans le code marchera.

Dans tous les cas, un grand merci et en espérant que ce soit possible !

Après quelques recherches, je comprends mieux le code en question.

Néanmoins je ne comprends pas comment la fonction "Application.Intersect" cible la colonne du bon onglet.

Est-ce appliqué à tous les onglets de D2 à D8 ?

Bonjour

Un essai à tester

- Il faudrait que quand les cellules soient grisées, il soit impossible d'y écrire

  • Il faudrait qu'au moment où la cellule se grise, le texte déjà présent s'efface
  • que cela s'applique non seulement pour une colonne (d2:d8 dans ce cas) mais pour une colonne de tableau
Le code est modifié pour répondre à ces 3 demandes

je ne comprends pas comment la fonction "Application.Intersect" cible la colonne du bon onglet

Ce code est un code de feuille qui s'applique sur la feuille dans laquelle il est installé dans l'éditeur VBA

code feuil1

Cordialement

24exemple-v2.zip (14.21 Ko)

C'est juste énorme et tout simplement parfait.

C'est exactement ce que je voulais. Un grand grand merci !

Je suis toujours impressionné de l'empathie et de la compétence de certains sur ce forum.

A une prochaine !

Bonjour à tous,

Après m'être débattu pendant 2 heures et en essayant de me souvenir de mes jeunes années avec mes cours de Gestion (sic)

J'ai besoin d'une aide pour la mise en place d'une mise en forme conditionnelle avec la fonction SI et OU

Je voudrais que si j'indique "1" dans la case A3, uniquement l'ensemble des "1" de la ligne se colorient en vert

De même que si j'indique "N" en A3, uniquement l'ensemble des "N" de cette même ligne se colorient en vert

Dans le cas contraire, si ça ne respecte aucunes conditions, alors en rouge

Et j'aimerais dans l'idéal, c'est que par exemple en cellule C10, ça m'indique le nombre de cellule en verte, le nombre de bonnes réponses en quelque sorte.

Merci d'avance

Bon week end à tous

Bonnes vacances pour ceux qui en prennent désormais.

Sébastien

Rechercher des sujets similaires à "mise forme conditionnelle colonne"