1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : février 2013
    Messages : 334
    Points : 228
    Points
    228

    Par défaut Problème macro-fonction %index

    Bonjour,

    Je m'arrache les cheveux depuis plus d'une heure là dessus et j'aimerais avoir votre aide si possible.

    Voici mon problème : je veux identifier la présence d'une chaîne dans une macro-variable. Voilà, c'est tout. Et je n'y arrive pas.

    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
    19
    20
    21
    %let tvar=BONJOUR SALUT;
    %put &tvar.;
     
    option mprint;
    %macro test;
        %if %index("&tvar.", "LU") > 0 %then %put CA MARCHE !;
        %else %put CA MARCHE PAS !!!;
    %mend;
    %test;
     
    %macro test;
        %if %index(&tvar., "LU") > 0 %then %put CA MARCHE !;
        %else %put CA MARCHE PAS !!!;
    %mend;
    %test;
     
     
    data t1;
        if index("BONJOUR SALUT", "LU") > 0 then v1 = 1;
        else v1 = 0;
    run;
    Alors qu'apparemment, on peut faire une recherche directement sur une chaîne et pas seulement une variable (data t1).

    Quelqu'un aurait la réponse à mon problème ?

    Merci beaucoup,

    alers

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    février 2011
    Messages
    1 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : février 2011
    Messages : 1 615
    Points : 3 406
    Points
    3 406

    Par défaut

    T'y étais presque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %if %index(&tvar., LU) > 0 %then %put CA MARCHE !;
    N'oubliez pas de consulter les FAQ SAS et les cours et tutoriels SAS
    N'oubliez pas de mettre votre message à si la solution donnée résout votre problème

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : février 2013
    Messages : 334
    Points : 228
    Points
    228

    Par défaut

    Bonjour et merci pour ta solution !

    Je vais l'utiliser dorénavant. Entre-temps, j'avais trouvé quelqu'un ça : indexc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    %let tvar=BONJOUR SALUT;
    %put &tvar.;
     
    option mprint;
    %macro test;
        %if %sysfunc(indexc("&tvar.", "LU")) > 0 %then %put CA MARCHE !;
        %else %put CA MARCHE PAS !!!;
    %mend;
    %test;
    Mais ta solution est plus simple.

    Merci encore !

    alers

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

Discussions similaires

  1. [XL-2010] Comment faire sans utiliser macro (Fonction RECHERCHE, INDEX, ETC....)
    Par anonymous9 dans le forum Excel
    Réponses: 7
    Dernier message: 04/02/2014, 15h57
  2. [AC-2007] Problème macro et fonction RechDom
    Par charlhub dans le forum Access
    Réponses: 5
    Dernier message: 02/02/2012, 11h06
  3. Problème de fonctions index + equiv imbriqués
    Par fcsjeux dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 06/01/2012, 16h19
  4. [XL-2007] Problème dans une fonction index et équivalence
    Par alexandrek dans le forum Excel
    Réponses: 3
    Dernier message: 03/02/2011, 16h51
  5. Fonction INDEX problème
    Par samuel539 dans le forum Excel
    Réponses: 5
    Dernier message: 24/02/2009, 15h39

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