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

Excel Discussion :

Codes couleur à aller chercher dans une cellule


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Codes couleur à aller chercher dans une cellule
    Salut ts le monde,

    j'ai un code qui marche bien maius que je voudrais personaliser:

    je voudrais mettre à la place du "10 ; 2; 3 ..." que la valeur se trouve dans
    ma feuille "Param!G7" pour la 10
    ma feuille "Param!G8" pour la 2
    ma feuille "Param!G9" pour la 3
    ...

    Un grand merci

    -----------------
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:B8")) Is Nothing Then: Exit Sub
    With Target
    Select Case Target.Value
    Case Is = "R"
    .Interior.ColorIndex = 10
    Case Is = "F"
    .Interior.ColorIndex = 2
    Case Is = "C"
    .Interior.ColorIndex = 3
    Case Else
    .Interior.ColorIndex = xlNone
    End Select
    End With
     
    End Sub

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour et bienvenue,

    Voici le code adapté:

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:B8")) Is Nothing Then: Exit Sub
    With Target
    Select Case Target.Value
    Case Is = "R"
    .Interior.ColorIndex = sheets("Param").range("G7")
    Case Is = "F"
    .Interior.ColorIndex = sheets("Param").range("G8")
    Case Is = "C"
    .Interior.ColorIndex = sheets("Param").range("G9")
    Case Else
    .Interior.ColorIndex = xlNone
    End Select
    End With
     
    End Sub
    A+

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Super merci ca marche bien !!!

    Je peux encore te demander une petite chose?

    j'ai voulu faire la même chose pour => Case Is = "R"
    changer le "R" par une cellule pour ne pas chque fois editer le code, mais ca n'a pas marché ?

    Citation Envoyé par Fvandermeulen Voir le message
    Bonjour et bienvenue,

    Voici le code adapté:

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:B8")) Is Nothing Then: Exit Sub
    With Target
    Select Case Target.Value
    Case Is = "R"
    .Interior.ColorIndex = sheets("Param").range("G7")
    Case Is = "F"
    .Interior.ColorIndex = sheets("Param").range("G8")
    Case Is = "C"
    .Interior.ColorIndex = sheets("Param").range("G9")
    Case Else
    .Interior.ColorIndex = xlNone
    End Select
    End With
     
    End Sub
    A+

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    Etrange, théoriquement ça fonctionne de la même manière, donc pour le premier cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    Select Case Target.Value
    Case Is = sheets("Param").range("H7") 'H7 contitent alors l'équivalent du R
    ...
    La seule remarque est que je pars du principe qu'il y a trois et seulement trois cas.

    A+

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    c'est vrai que dans l'exemple je n'ai cité que 3 exemples, mais j'en ai au total 40

    Citation Envoyé par Fvandermeulen Voir le message
    Re,
    Etrange, théoriquement ça fonctionne de la même manière, donc pour le premier cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    Select Case Target.Value
    Case Is = sheets("Param").range("H7") 'H7 contitent alors l'équivalent du R
    ...
    La seule remarque est que je pars du principe qu'il y a trois et seulement trois cas.

    A+

  6. #6
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Dans ce cas, le select case n'est peut-être pas le plus adéquoi...
    Je pars du principe que sur ta feuille Param tu as à partir de la ligne 7 tu es les différentes info pour les couleurs.
    J'imagine le code couleur dans la colonne G et la "lettre" dans la colonne F
    => la plage ira de F7 à G46

    On va utiliser le principe du .Find, voici un exemple:
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MaPlage As Range, MaRech As Range
    Dim MaCol As Long
     
    Set MaPlage = Sheets("Param").Range("F7:F46") 'Plage qui contient la référence liée à la couleur
     
    If Intersect(Target, Range("A1:B8")) Is Nothing Then: Exit Sub
     
    With MaPlage
        Set MaRech = .Find(Target.Value, LookIn:=xlValues) 'Recherche dans la plage la valeur de la cellule modifiée
        If Not MaRech Is Nothing Then 'Si n'est pas rien, donc si trouvé...
            Target.Interior.ColorIndex = MaRech.Offset(0, 1).Value 'Applique le code couleur contenu dans la cellule à droite de celle qui correspond à la recherche
        Else 'Sinon, donc pas trouvé
            Target.Interior.ColorIndex = xlNone 'Pas de couleur de fond.
        End If
    End With
     
    End Sub

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    BIG SUPER EXTRA MERCI. C'est tip top ce dont j'avais besoin.
    Merci

    Citation Envoyé par Fvandermeulen Voir le message
    Dans ce cas, le select case n'est peut-être pas le plus adéquoi...
    Je pars du principe que sur ta feuille Param tu as à partir de la ligne 7 tu es les différentes info pour les couleurs.
    J'imagine le code couleur dans la colonne G et la "lettre" dans la colonne F
    => la plage ira de F7 à G46

    On va utiliser le principe du .Find, voici un exemple:
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MaPlage As Range, MaRech As Range
    Dim MaCol As Long
     
    Set MaPlage = Sheets("Param").Range("F7:F46") 'Plage qui contient la référence liée à la couleur
     
    If Intersect(Target, Range("A1:B8")) Is Nothing Then: Exit Sub
     
    With MaPlage
        Set MaRech = .Find(Target.Value, LookIn:=xlValues) 'Recherche dans la plage la valeur de la cellule modifiée
        If Not MaRech Is Nothing Then 'Si n'est pas rien, donc si trouvé...
            Target.Interior.ColorIndex = MaRech.Offset(0, 1).Value 'Applique le code couleur contenu dans la cellule à droite de celle qui correspond à la recherche
        Else 'Sinon, donc pas trouvé
            Target.Interior.ColorIndex = xlNone 'Pas de couleur de fond.
        End If
    End With
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier la couleur du texte dans une cellule StringGrid
    Par Jotomaticen dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/09/2009, 22h42
  2. Réponses: 4
    Dernier message: 11/09/2009, 15h07
  3. Savoir le code couleur de la valeur dans une cellule.
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/01/2009, 13h36
  4. Réponses: 2
    Dernier message: 21/02/2007, 14h11
  5. mettre de la couleur dans une cellule
    Par Jiraiya42 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/06/2005, 10h16

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