|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 33 ![]() |
Bonjour,
J'ai créé une macro qui récupère un nom de variable dans une table. Mon problème c'est que je ne sais pas comment réutiliser cette "fonction". Je voudrais faire un truc du genre : Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
une fois que tu as créé ta macro il faut la compiler, c'est-à-dire lancer le code de %macro à %mend. viens ensuite la deuxième phase, l'éxécution, il suffit d'appeler la macro contenant les paramètres que tu désires.
dans le cas de ta première macro ca donnerais: mais pour info, tu peux récupérer tes variablezs sans passer par le language macro via la proc contents, par exemple |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Bonjour,
C'est plus facile de t'aider si tu postais ton code. Personne va te le piquer, en tout cas pas moi! |
|
|
00
|
|
|
#4 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 33 ![]() |
Désolé mais je ne comprend pas la réponse.
En fait ma 1ière macro récupère le nom de ma 1ière variable (en utilisant un proc contents). Voici le code (je l'avais enlever par soucis de simplicité mais c'est raté apparemment Code :
/* Je ne pense pas qu'il soit utile de mettre toute la macro */ Mais la ligne engendre un message d'erreur : Code :
ERREUR: Opérateur requis manquant dans expression : %RecupName (...)=1 |
||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
qd tu lances ce code sas "enregistre", si on peux dire, la macro et ce qu"elle peut faire.
après il faut l'appliquer sur des données concrètes. C'est l'éxécution. par exemple si tu veux appplliquer ce code au data set appelé test et situé dans la llibraiie bib, il faut que tu lances: %recup (bib.test); |
|
|
00
|
|
|
#6 |
|
Invité(e)
Messages : n/a ![]() |
|
00
|
|
|
#7 | ||
|
Membre actif
![]() Inscription : mars 2003 Messages : 149 ![]() |
Salut,
A la place de %if %RecupName (lib.tab)=1 , pourquoi ne ferais tu pas Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 33 ![]() |
Désolée d'être incompréhensible
Pour chacune de mes tables, Je veux faire un traitement particulier sur la 1ière variable dont je ne connais pas le nom. Pour le moment , 1=> je fais "tourner" ma macro 1 qui récupère le nom de ma 1ière variable. 2=> ensuite je veux l'appeler dans ma macro 2 Code :
|
||
|
|
00
|
|
|
#9 | ||
|
Membre actif
![]() Inscription : mars 2003 Messages : 149 ![]() |
Et çà, c'est bon ?
Perso, j'évite de mélanger une etape data avec du macro. Code :
|
||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
si tu essaies de voir ce que sas va faire tourner quand tu lances tes deux macros recupname et essai, tu verras que tu fais une étape data dans une étape data, ce qui n'est un code correct pour sas.
comme rose le dit, essaie de tout compresser dans une seule macro |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Si On suppose que tu veux faire un proc means sur ta variable passée en paramètre. Je sais pas si j'ai bien compris ce que tu veux
Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 33 ![]() |
Effectivement je n'avais même pas vu mes étapes data imbriquées!!!
Ma 2ième macro est très longue et va faire appel de nombreuses fois à la 1ière. C'est pour ca que je les ai séparé. en tout cas merci pour votre acharnement et désolé pour cette stupide erreur/ Code :
|
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
pas de soucis...
une dernière chose: ta macro essai n'a pas de paramètres. Ce qui veux dire qu'à chaque fois que tu vas lancer %essai, tu le feras sur la table physique lib.tab. Ce ne serait pas mieux de passer cette table en dynamique, c'est-à-dire en paramètre? |
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 33 ![]() |
oui bien sûr.. je me répète ma 2ième macro est bien plus longue que celle-ci... ca ce n'était qu'un "essai" pour tester le problème que j'ai rencontré
|
|
|
00
|
|
|
#15 | ||
|
Membre expérimenté
![]() Inscription : avril 2009 Messages : 537 ![]() |
sans macro :
Utilisation d'un tableau pour y stocker les variables caracteres. La première position est la première variable. Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com