1. #1
    Candidat au Club
    Homme Profil pro
    EPSECO
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : EPSECO
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 4
    Points
    4

    Par défaut Colorier une cellule en fonction du contenu

    Bonjour à tous,
    Je souhaiterais utiliser un module sur VBA pour colorier le fond de la cellule en fonction du contenu (texte) sans passer par le MFC prévu sur Excel.
    En effet, j'ai sur VBA, la possibilité de compter les cellules en fonction de leur couleur mais en utilisant la mise en forme conditionnelle d'Excel
    je ne parviens pas à utiliser mon mini programme VBA pour compter les cellules colorées.
    Merci pour votre aide.

  2. #2
    Membre émérite
    Femme Profil pro
    Étudiant
    Inscrit en
    octobre 2016
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2016
    Messages : 1 419
    Points : 2 326
    Points
    2 326

    Par défaut

    Bonjour et bienvenue au forum !
    Qu'est-ce qui te pose problème ? As-tu déjà essayé d'obtenir un code avec l'enregistreur de macro (code à adapter !) ?


    PS : ceci est le forum Excel et non pas VBA, la prochaine fois pose ta question dans le bon forum

  3. #3
    Membre émérite Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2012
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 1 747
    Points : 2 855
    Points
    2 855

    Par défaut

    Bonjour,

    Effectivement, comme le dit riaolle, sur le forum VBA, c'est plus efficace.

    Il te faut créer un nouveau module dans VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Change_Couleur() 
       If Sheets("Feuil1").Range("A1").Value = "Texte_Recherche" Then 
          Sheets("Feuil1").Range("a1").Interior.ColorIndex = 6
       Else 
          Sheets("Feuil1").Range("a1").Interior.ColorIndex = 0
       End If 
    End Sub
    Ensuite, dans les événements 'Change' de ta feuille "Feuil1", tu tapes l'appel à cette procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range) 
       Change_Couleur 
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    EPSECO
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : EPSECO
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 4
    Points
    4

    Par défaut Grand merci

    C'est Ok ça marche. Merci beucoup: D

  5. #5
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 490
    Points : 25 812
    Points
    25 812
    Billets dans le blog
    4

    Par défaut

    Salut.

    Le problème du coloriage par VBA, c'est qu'une modification de la cellule n'apportera pas la modification de la couleur, là où une MFC le ferait.

    Personnellement, je laisserais à Excel le soin de colorier par MFC, et je compterais les cellules qui correspondent à la condition de la MFC. Cela me semble bien plus simple que de coder les conditions en VBA...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  6. #6
    Candidat au Club
    Homme Profil pro
    EPSECO
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : EPSECO
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 4
    Points
    4

    Par défaut

    Beaucoup bien sûr....

  7. #7
    Candidat au Club
    Homme Profil pro
    EPSECO
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : EPSECO
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 4
    Points
    4

    Par défaut Merci

    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.

    Le problème du coloriage par VBA, c'est qu'une modification de la cellule n'apportera pas la modification de la couleur, là où une MFC le ferait.

    Personnellement, je laisserais à Excel le soin de colorier par MFC, et je compterais les cellules qui correspondent à la condition de la MFC. Cela me semble bien plus simple que de coder les conditions en VBA...
    Je vais essayer les 2 formules. Merci c'est très sympa...

  8. #8
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 490
    Points : 25 812
    Points
    25 812
    Billets dans le blog
    4

    Par défaut

    Et j'ajouterais qu'il n'est peut-être pas nécessaire, dans ce cas, de passer par VBA, une formule matricielle pourrait faire l'affaire. Et si tu utilises VBA (par exemple pour intégrer cela à une procédure VBA existante), tu pourras utiliser les techniques VBA qui permettent de calculer les formules (EVALUATE, notamment). Grâce à cela, une modification de la condition sera adaptée par simple modification de la formule XL ou VBA qui compte les cellules qui répondent à la condition.

    Tu dégages alors complètement le problème de l'expression de la condition du code VBA et tu rends ton code beaucoup plus maintenable.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

  9. #9
    Candidat au Club
    Homme Profil pro
    EPSECO
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : EPSECO
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 4
    Points
    4

    Par défaut Coloriage cellule

    Citation Envoyé par QuestVba Voir le message
    Bonjour,

    Effectivement, comme le dit riaolle, sur le forum VBA, c'est plus efficace.

    Il te faut créer un nouveau module dans VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Change_Couleur() 
       If Sheets("Feuil1").Range("A1").Value = "Texte_Recherche" Then 
          Sheets("Feuil1").Range("a1").Interior.ColorIndex = 6
       Else 
          Sheets("Feuil1").Range("a1").Interior.ColorIndex = 0
       End If 
    End Sub
    Ensuite, dans les événements 'Change' de ta feuille "Feuil1", tu tapes l'appel à cette procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range) 
       Change_Couleur 
    End Sub
    Je reviens vers parce que j'aurais plutôt souhaité colorier la cellule d'une plage comprenant un texte précis et pas seulement une cellule
    comme indiqué dans votre programme. Cela suppose que le code VBA recherche une valeur sous forme de texte et utilise la condition If pour appliquer la coloration de la cellule. Je peux après additionner les couleurs et un nombre d'item. Si vous pouvez aire quelque chose? Merci d'avance.
    Mais nous tracassez pas, je suis un petit amateur de programmation.

  10. #10
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    10 490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 10 490
    Points : 25 812
    Points
    25 812
    Billets dans le blog
    4

    Par défaut

    Je ne comprends toujours pas pourquoi tu ne veux pas utiliser les MFC et les formules conditionnelles que tu utilises dans ta mfc

    Nom : 2017-06-16_190605.png
Affichages : 27
Taille : 7,5 Ko

    Mettre en dur dans ton code la partie de texte recherchée est une très mauvais pratique qui va t'obliger à modifier ton code le jour où tu voudras modifier ta condition. Utiliser les formules, dans Excel ou dans VBA sur base des conditions et pas sur base des couleurs est un moyen très sécurisant de travailler.

    Travailler sur les couleurs dans Excel est toujours une mauvaise solution, et c'est d'ailleurs pourquoi Excel ne propose pas de telles fonctions...

    En VBA, tu peux aussi compter les cellules qui répondent à la condition, de plusieurs façons, mais j'aime bien la plage nommée en Excel pour éviter justement de coder en dur...

    Nom : 2017-06-16_191657.png
Affichages : 27
Taille : 12,8 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Test()
      Dim NB1 As Long
     
      NB1 = Evaluate(Range("Formule").Value)
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié l'intervention => Merci pour le
    ---------------

Discussions similaires

  1. colorier une cellule en fonction de l'utilisateur qui l'a modifiée
    Par rugbyman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/02/2012, 01h23
  2. colorier une cellule en fonction de plusieurs conditions
    Par antoine2933 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/07/2011, 12h20
  3. [XL-2007] Macro remplir une cellule en fonction du contenu d'une autre cellule
    Par Coco_O dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/05/2011, 20h16
  4. [XL-2003] Remplissage d'une cellule en fonction du contenu d'autres cellules.
    Par homer83140 dans le forum Excel
    Réponses: 27
    Dernier message: 13/01/2011, 16h39
  5. Changer la couleur d'une cellule en fonction du contenu
    Par titourock dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 16/09/2009, 16h29

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