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

ODS et reporting Discussion :

Mise en forme de cellules conditionnée par d'autres cellules


Sujet :

ODS et reporting

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Mise en forme de cellules conditionnée par d'autres cellules
    Bonjour à tous,

    Je me demande s'il y a une solution pour mettre en forme des cellules (que ce soit dans une proc tabulate ou autre) d'un tableau selon les conditions d'autres cellules (pas forcément les colonnes/lignes auxquelles appartiennent les cellules).

    Je m'explique avec un exemple assez simple.

    A partir des données brutes :

    Nom : data.PNG
Affichages : 236
Taille : 5,1 Ko

    Pourrait-on obtenir un reporting de la forme :

    Nom : report.PNG
Affichages : 232
Taille : 2,3 Ko

    Tel que :
    1. remplissage de cellules avec du rouge quand les valeurs sont négatives
    2. police de couleur rouge quand le stock du fournisseur dans le pays indiqué est géré par un sous-traitant

    Le point 1. ne me pose pas de problème, car c'est direct avec un format.

    C'est plutôt le point 2. qui m'intrigue un peu.

    Merci beaucoup de votre aide !

  2. #2
    Membre habitué
    Homme Profil pro
    sas help desk et installateur
    Inscrit en
    Mai 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : sas help desk et installateur
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2010
    Messages : 41
    Points : 143
    Points
    143
    Par défaut
    Oui cela doit être possible

    deux pistes à concrétiser

    1) je n'ai jamais essayé le multilabel sur des styles de couleur
    pour background ou foreground
    cependant cela me fait penser qu'en 9.3 on peut maintenant utiliser
    des fonctions à droite du signe égal dans des values....

    2) créer son petit template de table
    et utiliser cette facilité en la mélangeant à la solution de votre 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    47     cellstyle     180 < t    as {font_style=italic background=red },
    48                   100 < t <= 180   as {font_style=italic background=salmon },
    49                   50 <= c <= 100   as {font_style=italic background=green
    49 ! foreground=black}
    ceci est accepté pour la compilation d'un template
    et le cellstyle s'applique à la colonne t mais je teste une valeur de la colonne c
    cellstyle travaille a postériori sur des résultats pour changer leur présentation
    donc dans second temps par rapport à habillage par le format

    A tester

    Pour faire un template de table inspirez-vous de Kevin D Smith
    Proc template tables from scratch


    AW

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci Wielki !

    Si j'ai bien compris, dans votre proposition 2, les variables t et c représentent bien des colonnes, selon lesquelles, on souhaite mettre en forme une même cellule ?

    Je me demande également si la proc template pourrait être utilisée pour un report qui pourrait varier de taille (nombre de colonnes / de lignes).

    Merci encore !!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    hello,

    moi, j'aurais :
    1/ recodé la variable ss_traitant en numérique.
    2/ utilisation d'un proc format pour les valeurs négatives.
    3/ utilisation d'un call define pour la mise en forme conditionnelle

    exemple de code à adapter ...

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    /* jeu de données */
    data matable;
    input frn $2. pays :$10. stock :percent5. ss_traitant $3.;
    if ss_traitant = "oui" then ss_traitant2 = 0;
    else ss_traitant2=1;
    cards;
    F1 France -2% oui
    F1 Allemagne 5% non
    F1 Suisse 14% oui
    F2 France 10% non
    F2 Allemagne -1% non
    F2 Suisse 7% non
    ;
    run;
     
    /* format des valeurs négatives */
    PROC FORMAT;
    value bgcolor low-<0="lightpink";
    RUN;
     
    /* la proc report avec les call define */
    proc report data=matable;
    column ("fournisseur" frn) pays, (ss_traitant2 stock);
    define frn / group '';
    define pays / across '';
    define stock / sum '' format=percent5. STYLE={BACKGROUND=bgcolor.};
    define ss_traitant2 / sum '' noprint;
    compute stock;
    	IF _C2_ = 0 THEN CALL DEFINE('_C3_','style','style=[foreground=red]');
    	IF _C4_ = 0 THEN CALL DEFINE('_C5_','style','style=[foreground=red]');
    	IF _C6_ = 0 THEN CALL DEFINE('_C7_','style','style=[foreground=red]');
    endcomp;
    run;
    Images attachées Images attachées  

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Hello et merci beaucoup Edward Carnby !

    C'est exactement ça !

    Merci encore !

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

Discussions similaires

  1. [XL-2010] Mise en forme barre d'erreur par macro
    Par citizenbaban dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/04/2013, 09h37
  2. Réponses: 3
    Dernier message: 14/11/2011, 13h00
  3. [XL-2007] Mise en forme conditionnelle en fonction d'une autre cellule
    Par amaryllis dans le forum Excel
    Réponses: 2
    Dernier message: 01/09/2010, 22h01
  4. Réponses: 6
    Dernier message: 25/06/2009, 22h22
  5. [XSLT]Mise en forme d'un tableau par categorie
    Par dibox dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/12/2006, 16h42

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