IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[Débutant] couleur en fonction de valeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut [Débutant] couleur en fonction de valeur
    Bonjour,

    Je précise que je débute et que mes connaissances sont proches du néant
    Je cherche à changer la couleur d'une case si la case voisine a une certaine valeur, par exemple changer la couleur de la case en rouge si la case qui est à sa droite a la valeur "1", et en bleu si la case à sa droite possède la valeur "2".

    Merci beaucoup d'avance

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,
    Tu peux simplement le faire, sans code, via la Mise en Forme Conditionnelle

    Sélectionne la cellule A1
    Menu Format --> Mise en Forme Conditionnelle

    Condition 1 :
    Sélectionne "la formule est" et tu introduits =$B$1=1
    Format --> Motif et tu mets la couleur qui va bien

    Condition 2 :
    même topo en indiquant =$B$1=2

    Si tu tiens absolument à le faire via un bout de code VBA
    Code à insérer dans l'évènement Change de la feuille concernée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then
        Select Case Target.Value
            Case 1
                Range("A1").Interior.ColorIndex = 3
            Case 2
                Range("A1").Interior.ColorIndex = 5
            Case Else
                Range("A1").Interior.ColorIndex = xlNone
        End Select
    End If
    End Sub
    Ce code ne fonctionne que pour une seule cellule, si plusieurs cellules yfo adapter

    A toi de dire ce que tu souhaites obtenir exactement et par quel moyen

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut m4tl4b, fring et le forum
    Je mettrais plutôt
    Condition 1 :
    Sélectionne "la formule est" et tu introduits =B1=1
    Format --> Motif et tu mets la couleur qui va bien
    Condition 2 :
    même topo en indiquant =B1=2
    permettant un coiper format
    Attention : 3 possibilités de changement max(+la couleur initiale)
    L'ordre des condition peut avoir de l'importance : la 2me ne sera testée que si la première condition n'est pas à VRAI
    La 3me, que si la première et la seconde conditions sont à FAUX

    Sinon, par macro automatique =>
    Clic-droit sur le nom de l'onglet concerné=>Menu contextuel>>Visualiser le code
    tu colles la macro suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    'déclaration =========================
    Dim Cel As Range
    'Test de validité ====================
    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    'si les cellule modifièes n'appartiennent pas à la colonneA
    'sortir
    'traitement ==========================
    For Each Cel In Intersect(Target, Columns(1))
    'pour chaque cellule modifiée appartenant à A
        Select Case Cel
            Case 1 'cel=1 =>rouge
                Cel.Offset(0, 1).Interior.ColorIndex = 3
                'la cellule de la colonne de droite coloriée en rouge
            Case 2 'cel=2 =>bleu
                Cel.Offset(0, 1).Interior.ColorIndex = 5
            Case Else 'autres valeurs de cel=>aucun
                Cel.Offset(0, 1).Interior.ColorIndex = xlNone
        End Select
    Next Cel
    'cellule suivante
    End Sub
    si tu modifies des cellules de la colonne 1 (A), tu colories la cellule de la colonne B de la même ligne
    La boucle est nécessaire pour traiter les modification de plusieurs cellules en même temps (effacement, coller)
    Si tu as des questions, n'hésite pas
    A+

Discussions similaires

  1. [Débutant] Mettre un fond en couleur en fonction des valeurs de y
    Par Anna76 dans le forum MATLAB
    Réponses: 2
    Dernier message: 29/08/2014, 11h05
  2. code colors, couleur en fonction de la valeur
    Par Kihmé Xs dans le forum iReport
    Réponses: 12
    Dernier message: 15/09/2012, 00h40
  3. Changement couleur en fonction des valeurs
    Par Mistah dans le forum LabVIEW
    Réponses: 4
    Dernier message: 07/01/2011, 12h54
  4. [débutant] couleur fonction de l'orientation
    Par tchoco dans le forum OpenGL
    Réponses: 12
    Dernier message: 11/08/2008, 10h17
  5. Réponses: 8
    Dernier message: 16/08/2007, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo