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 :

Mise en forme conditionelle zone de texte


Sujet :

Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Mise en forme conditionelle zone de texte
    Bonjour à tous,

    J'ai un petit souci avec la mis en forme conditionnelle sous Excel.
    En effet, j'ai fait un graphique intégrant une zone de texte (commentaire des résultats). Cette zone de texte est en fait égale à une cellule (la formule dans la zone de texte est =A1).
    Cette cellule A1 intègre une mise en forme conditionnelle.
    Je souhaiterai que cette mise en forme conditionnelle se retrouve aussi dans ma zone de texte.
    Bref, je voudrais :
    - soit que la formule dans la zone de texte intègre la valeur de la cellule A1 mais aussi sont format
    - soit que je puisse appliquer à cette zone de texte la même mise en forme conditionnelle que la cellule A1

    Je n'arrive à réaliser ni l'une ni l'autre des solutions.
    Est ce quelqu'un pourrait m'aider (ou me donner une autre solution) ?

    Merci par avance

    Nicoach

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    La seule solution, à mes yeux, passe par VBA.

    Il faut connaître le nom de code de la zone de texte. Ensuite, dans la procédure évenementielle Worksheet_Calculate (si c'est un graphique intégré à une feuille en tant qu'objet) de la feuille contenant le graphique ou Chart_Calculate (si c'est une feuille graphique), il faut évaluer à l'aide d'un If - Then - End If, l'expression servant à la mise en forme conditionnelle de la cellule (accessible par Range.FormatConditions(1).Formula1 de la cellule).

    Ainsi, tu mets la couleur appropriée à la zone de texte dépendamment de l'issue de l'évaluation.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    OK, merci.

    J'étais déjà en train de grater dans ce registre mais ton avis renforce le fait que je suis sur la bonne voie.
    Comme je suis très novice dans le languafe VB, peux tu m'aider dans l'écriture ?
    Il s'agit de plusieurs graphiques intégrés dans une feuille de calcul.
    Chaque graphique comporte une zone de texte qui affiche le contenu d'une cellule calculée dans une autre feuille.

    Je voudrais écrire :
    If la valeur de la text box = "L"
    Then le texte de la text box est en rouge
    Else le texte de la text box est en vert
    End If


    Et oui, j'avais prévenu, je suis TRES novice ! Désolé !

    Nicoach

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Je voudrais bien t'aider mais sans un exemple concret de ton classeur je ne peux rien faire d'autre que de te donner des pistes. Tu pourrais mettre ton classeur en fichier joint à ton message?

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Ci joint un extrait de mon classeur avec mes commentaires et mes questions.

    Merci pour ton aide

    Nicoach
    Fichiers attachés Fichiers attachés

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Le code suivant est à placer dans le module de la feuille "Graphiques":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Activate()
        Dim tb As Excel.TextBox
        Dim rng As Range
     
        For Each tb In Me.TextBoxes
            Set rng = Worksheets(Split(tb.Formula, "'")(1)).Range(Split(tb.Formula, "!")(1))
            tb.Font.Color = IIf(rng.Value = "J", vbGreen, vbRed)
        Next tb
    End Sub
    Pour qu'il fonctionne correctement, il faut couper la zone de texte incluse dans le graphique en haut à droite, séelctionner une cellule quelconque et coller la zone coupée. Répéter l'opération avec le graphique d'en bas. Tu peux ensuite repositionner tes zones de façon à ce qu'elles soient au bon endroit au dessus du graphique.

    Il faut faire cela parce que tu as inclus ces zones de texte à l'intérieur des graphique et non sur la feuille elle-même. Pour que la macro fonctionne, il faut que toutes les zones de texte fasse partie de la feuille et non des graphiques.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup, ca marche !

    Par contre j'ai toujours le même problème lors de l'impression. Quand je veux imprimer les graphiques (j'imprime chaque graphique séparément sur une feuille A4 en sélectionnant le graphique et en lancant l'impression) les zones de texte ne s'impriment pas avec le graphique.

    Merci encore pour ton aide précieuse.

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Dans le module de ThisWorkbook, tu colles ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        Dim ch As ChartObject
     
        For Each ch In Worksheets("Graphiques").ChartObjects
            ch.PrintObject = True
        Next ch
    End Sub
    Pour faire ça, tu vas dans le menu Outils/Macro/Visual Basic Editor. Ceci ouvre l'éditeur VBA pour Excel.

    Dans l'éditeur, tu t'assures que l'explorateur de projets est bien en vue (Menu Affichage/Explorateur de projets). C'est une fenêtre qui comporte une arborescence commençant par VBAProject(bilanterie.xls), si ton fichier Excel s'appelle bilanterie.xls. Assures-toi que les objets du projets sont visibles en double-cliquant sur le dossier Microsoft Excel Objets.

    Double-cliques sur l'objet ThisWorkbook et une fenêtre nommée "bilanterie.xls - ThisWorkbook (code)" apparaîtra. Clique dans la zone centrale de la fenêtre et colles le code.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    En appliquant les codes définis au dessus, la mise en forme des zones de texte marche nickel (couleur verte ou rouge).
    Par contre, les zones de texte ne s'impriment toujours pas avec les graphiques.
    Pouvez vous m'aider pour trouver l'erreur ?

    Ci joint mon classeur.


    Merci par avance

    Nicoach
    Fichiers attachés Fichiers attachés

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    De quelles zones de texte parles-tu exactement? J'ai imprimé la page des graphiques et tout baigne!

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Désolé, c'est moi qui faisais une mauvaise manip ...

    Sorry

    Tout fonctionne nickel ! MERCI !

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

Discussions similaires

  1. [AC-2007] Mise en forme des zones de texte
    Par l.flipper dans le forum IHM
    Réponses: 1
    Dernier message: 05/07/2012, 19h14
  2. Réponses: 2
    Dernier message: 21/07/2008, 14h26
  3. Zone de liste avec mise en forme conditionel
    Par sakia dans le forum IHM
    Réponses: 1
    Dernier message: 19/09/2007, 03h07
  4. Réponses: 2
    Dernier message: 21/04/2005, 12h02
  5. [CR] mise en forme d'un champs texte en fonction des données
    Par niPrM dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 29/06/2004, 11h57

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