A voir également:
- SAS et VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Meetic sas prélèvement - Forum Consommation & Internet
- Freebox sas c'est quoi - Forum Freebox
- Remboursement Meetic abonnement non souhaité ✓ - Forum Vos droits sur internet
21 réponses
Bonjour!
Franchement, je pense pas que tu puisses convertir! SAS utilise tellement des fonctions spécifiques aux stats!!
Je ne suis pas experte, mais je pense sincèrement que non!
Bon courage
Maily :-))))
Franchement, je pense pas que tu puisses convertir! SAS utilise tellement des fonctions spécifiques aux stats!!
Je ne suis pas experte, mais je pense sincèrement que non!
Bon courage
Maily :-))))
tu ne peux pas convertir un prog SAS en VB, car SAS utilise un langage propre à lui, proche de ADA.
toutefois, tu peux réecrire les instructions simple en VB
mais pour les commandes et instructiuons complexes tu ne peux par, car VB ne les connait pas, donc tu dois, par exemple, déclarer à nouveaux toutes les étapes d'une régression ou d'une analyse statistiques simple.
pour plus d'informations tu peux poser ta question directement sur www.sas.com
time is not money, time is life
toutefois, tu peux réecrire les instructions simple en VB
mais pour les commandes et instructiuons complexes tu ne peux par, car VB ne les connait pas, donc tu dois, par exemple, déclarer à nouveaux toutes les étapes d'une régression ou d'une analyse statistiques simple.
pour plus d'informations tu peux poser ta question directement sur www.sas.com
time is not money, time is life
SAS est un langage de 4è generation (sql c'est 3e generation)
donc il n'y a pas possibilité (ni d'interet) de le convertir en vb...
Par contre il me semble qu'il est possible de lancer une session sas en vb et donc d'executer des pgm sas...
J'ai pas la solution en tete mais jette un coup d'oeil sur www.sas.com ou http://support.sas.com/
donc il n'y a pas possibilité (ni d'interet) de le convertir en vb...
Par contre il me semble qu'il est possible de lancer une session sas en vb et donc d'executer des pgm sas...
J'ai pas la solution en tete mais jette un coup d'oeil sur www.sas.com ou http://support.sas.com/
bonjour,
j'ai un problème...
j'ai un fichier sas avec l'extension sas7bcat. J'ai mis ouvrir avec The SAS System for Windows et ça ne marche pas du tout. L'icône du fichier a changé de présentation, je n'ai plus le dossier avec le point rouge maisune feuille blanche avec marqué sas dessus.
HELP...
j'ai un problème...
j'ai un fichier sas avec l'extension sas7bcat. J'ai mis ouvrir avec The SAS System for Windows et ça ne marche pas du tout. L'icône du fichier a changé de présentation, je n'ai plus le dossier avec le point rouge maisune feuille blanche avec marqué sas dessus.
HELP...
Salut marine!
Ce fichier est en fait un catalogue sas.
Pour voir ce qu'il y a dedans il faut
- ouvrir une session sas
- faire un libname vers le repertoire contenant le catalogue (ex. : libname malib "c.\temp" ;)
- double cliquer dans l'explorateur sur malib (ou n'importe quel autre nom que tu aurais pu utiliser)...
J'espere que ça aidera....
Ce fichier est en fait un catalogue sas.
Pour voir ce qu'il y a dedans il faut
- ouvrir une session sas
- faire un libname vers le repertoire contenant le catalogue (ex. : libname malib "c.\temp" ;)
- double cliquer dans l'explorateur sur malib (ou n'importe quel autre nom que tu aurais pu utiliser)...
J'espere que ça aidera....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
il existe un obdc sas access
tu lies tes tables sas sous access et tu les traites ensuite avec les fonctions vb et vba
jamais essayé mais ca doit marcher
tu lies tes tables sas sous access et tu les traites ensuite avec les fonctions vb et vba
jamais essayé mais ca doit marcher
bjr!
si tu trouves aussi comment adapter une base de donnée en fonction des changements de la base de donnée par exemple pour un questionaire veuillez m aider.
si tu trouves aussi comment adapter une base de donnée en fonction des changements de la base de donnée par exemple pour un questionaire veuillez m aider.
Salut
J'ai besoin de convertir une macro SAS en macro BV excel
toute info serait bien venue
merci d'avance
J'ai besoin de convertir une macro SAS en macro BV excel
toute info serait bien venue
merci d'avance
Salut,
Comme expliqué précédemment, tu ne peux pas convertir des macros SAS en macro VB Excel. En SAS, Le langage Macro est un langage propriétaire compilé qui est une surcouche du langage SAS/BASE.
Cependant, tu peux controler Excel à partir de SAS via le DDE : http://v8doc.sas.com/sashtml/win/dde.htm
Avec cette même méthode, tu peux également exécuter des macros VB : https://support.sas.com/resources/papers/proceedings/proceedings/sugi25/25/cc/25p098.pdf
SteelSpirit
Comme expliqué précédemment, tu ne peux pas convertir des macros SAS en macro VB Excel. En SAS, Le langage Macro est un langage propriétaire compilé qui est une surcouche du langage SAS/BASE.
Cependant, tu peux controler Excel à partir de SAS via le DDE : http://v8doc.sas.com/sashtml/win/dde.htm
Avec cette même méthode, tu peux également exécuter des macros VB : https://support.sas.com/resources/papers/proceedings/proceedings/sugi25/25/cc/25p098.pdf
SteelSpirit
Merci
En fait le but 'in fine' est d'arriver à ce
passer de SAS en adaptant une macro sas
en macro excel. Vu que la macro n'est pas d'une
complexité énorme, je pense que c'est faisable,
mais comment ?
En fait le but 'in fine' est d'arriver à ce
passer de SAS en adaptant une macro sas
en macro excel. Vu que la macro n'est pas d'une
complexité énorme, je pense que c'est faisable,
mais comment ?
Dans ce cas, vu que la macro SAS n'est pas compliquée, tu prends une feuille blanche, tu écris l'algorithme puis tu créés ta macro VB ;-)
Steel
PS: Si tu peux me montrer la macro SAS je pourrais t'aider ...
Steel
PS: Si tu peux me montrer la macro SAS je pourrais t'aider ...
salut
c'est sympas de ta part
vu que je suis novice en programmation
j'ai encore un peu de mal
merci de voir ce que tu peut faire
comme je te disai, c'est pas tres complexe
il s'agit juste de récuperer les infos d'un tableau
excel en csv et de les ordonner d'une façon différente
dans un autre fichier csv
mais moi je pense qu'on peut traiter
ça directement sans passer par csv
ces données une fois traiter doivent subir
des calcul défini dans une autre macro.
Ces calculs sont lancé grace a une boucle que j'ai
écris. Si tu veux je peux te la monter aussi
mais celle-ci tourne pas trop mal
merci d'avance pour ton aide
n'esites pas a me contacter si tu as
besoin de précisions
PJ
____________________________________
options ps=60 ls=80;
data a;
infile "G:\f-renoutet\_Sfrp2SPOT\cembrzyn\ACI\X91-2RD-a4.csv" firstobs=6 dlm=";" lrecl=5000;
length cordon $8 vue $1 classe $4 config $4 ;
array v cordon vue classe config;
input cordon
vue
op
classe
config
ep1
ep2
l1 l1_ l2 l2_ p1 p1_ p2 p2_ a a_ b b_;
do over v;
v=compress(v);
end;
run;
data d;
infile "G:\f-renoutet\_Sfrp2SPOT\cembrzyn\ACI\X91-2RD-a4.csv" firstobs=2 obs=2 dlm=";" lrecl=5000;
length chaine $200 ;
input chaine;
chaine = compress(upcase(chaine));
if index(chaine,upcase("essai:")) ne 0 then do;
ncar = index(chaine,upcase("essai:"))+length("essai:"); * chemin ;
essai = input(substr(chaine,ncar,1),1.);
end;
if index(chaine,upcase("essai")) ne 0 then do;
ncar = index(chaine,upcase("essai"))+length("essai"); * chemin ;
essai = input(substr(chaine,ncar,1),1.);
end;
else if index(chaine,upcase("chemin")) ne 0 then do;
ncar = index(chaine,upcase("chemin"))+length("chemin");
essai = input(substr(chaine,ncar,1),1.);
end;
else do;
essai = 1;
end;
*;
if index(chaine,upcase("jour")) ne 0 then do;
ncar = index(chaine,upcase("jour"))+length("jour"); * jour de collecte *;
rafale = input(substr(chaine,ncar,4),4.);
end;
else if index(chaine,upcase("s")) ne 0 then do;
ncar = index(chaine,upcase("s"))+length("s");
rafale = input(substr(chaine,ncar,4),4.);
end;
else do;
rafale = 1;
end;
*keep essai rafale;
run;
proc print;run;
%let essai=;
%let rafale=;
data _null_;
set d(obs=1);
call symput("essai",compress(put(essai,8.)));
call symput("rafale",compress(put(rafale,8.)));
run;
%let essai=%eval(&essai);
%let rafale=%eval(&rafale);
%put numero d essai &essai numero de jour de prelevement (rafale) &rafale;
data pe;
************************************;
* lecture du PE echantillonage 2RD *;
* rappel OP120 = OP100 *;
************************************;
input T_OP105 T_OP110 T_OP120 T_OP130 T_OP140 T_OP150 T_OP160;
ESSAI = _n_;
rafale= &rafale;
chemin= 1;
ligne = 1;
cards;
1 1 1 1 1 1 1
2 2 1 1 2 1 2
2 1 2 2 2 2 1
1 2 2 2 1 2 2
;
run;
%put &essai;
data chemin;
set pe(obs=&essai firstobs=&essai);
run;
proc sort data=chemin;
by rafale;
run;
*;
data b;
set a;
length classe_ $4 ;
retain cordon_ classe_ op_ l1_lit l2_lit a_lit b_lst;
*;
array sp l1_lit l2_lit a_lit b_lst;
array me l1 l2 a b;
*;
if (compress(cordon) ne compress(" ")) and (compress(vue) eq compress(" ")) then do;
cordon_ = input(substr(cordon,2),3.);
if cordon_ eq 311 then cordon_ = 131;
else if cordon_ eq 321 then cordon_ = 132;
classe_ = classe;
l1_lit = l1_; * lsl l1 ;
l2_lit = l2_; * lsl l2 ;
a_lit = a_; * lsl a ;
b_lst = b_; * usl b ;
*;
op_ = op;
dmf = .;
end;
else if (compress(cordon) eq compress(" ")) and (compress(vue) ne compress(" ")) then do;
dmf = index(upcase("DMF"),upcase(vue)) ;
erreur = 0; * erreur sur les 4 mesures *;
if (abs(l1) le 1.E-07) and
(abs(l2) le 1.E-07) and
(abs(a) le 1.E-07) and
(abs(b) le 1.E-07) then erreur = 1;
*;
do over me;
********** adaptation donnees M. Jacquot *;
if (abs(sp) gt 1.E-07) and (erreur ne 1) then do;
me = me / sp; * normalisation des mesures par rapport à lsl/usl avec tol = 1*;
end;
else do;
me = .;
end;
end;
rafale = &rafale;
rep = l1;
output;
end;
keep l1 l2 a b op_ dmf cordon_ l1_lit l2_lit a_lit b_lst rafale rep ;
rename cordon_ = cordon op_ = op;
run;
proc sort data=b;
by rafale cordon dmf;
run;
proc summary data=b;
by rafale cordon;
output out=c(keep=_freq_ rafale cordon rename=(_freq_=n)) ;
run;
proc format;
value dmf
1 = 'D'
2 = 'M'
3 = 'F'
;
run;
data b;
merge b c;
by rafale cordon;
length cordon_ $6;
if n > 1 then do;
cordon_ = upcase(compress(put(cordon,4.)||put(dmf,dmf.)));
end;
else do;
cordon_ = compress(put(cordon,4.));
end;
drop cordon ;
rename cordon_ = cordon;
run;
data c;
merge chemin b;
by rafale;
run;
proc sort data=c;
by ligne cordon rafale dmf essai;
run;
data _null_;
set c;
array v _numeric_;
file "G:\f-renoutet\_Sfrp2SPOT\cembrzyn\ACI\X91-2RD-essai&essai..csv" lrecl=3000 ;
if _n_ eq 1 then do;
put "ligne;cordon;rafale;dmf;T_OP105;T_OP110;T_OP120;T_OP130;T_OP140;T_OP150;T_OP160;chemin;REP;essai;"
"l1;l2;a;b;l1_lit;l2_lit;a_lit;b_lst;";
end;
do over v;
if v eq . then v=-999999; * remplacement code donnee manquante *;
end;
cordon=compress(cordon);
if length(cordon) = 1 then do;
put ligne best7. ";"
cordon $1. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 2 then do;
put ligne best7. ";"
cordon $2. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 3 then do;
put ligne best7. ";"
cordon $3. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 4 then do;
put ligne best7. ";"
cordon $4. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 5 then do;
put ligne best7. ";"
cordon $5. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
run;
_________________________________
c'est sympas de ta part
vu que je suis novice en programmation
j'ai encore un peu de mal
merci de voir ce que tu peut faire
comme je te disai, c'est pas tres complexe
il s'agit juste de récuperer les infos d'un tableau
excel en csv et de les ordonner d'une façon différente
dans un autre fichier csv
mais moi je pense qu'on peut traiter
ça directement sans passer par csv
ces données une fois traiter doivent subir
des calcul défini dans une autre macro.
Ces calculs sont lancé grace a une boucle que j'ai
écris. Si tu veux je peux te la monter aussi
mais celle-ci tourne pas trop mal
merci d'avance pour ton aide
n'esites pas a me contacter si tu as
besoin de précisions
PJ
____________________________________
options ps=60 ls=80;
data a;
infile "G:\f-renoutet\_Sfrp2SPOT\cembrzyn\ACI\X91-2RD-a4.csv" firstobs=6 dlm=";" lrecl=5000;
length cordon $8 vue $1 classe $4 config $4 ;
array v cordon vue classe config;
input cordon
vue
op
classe
config
ep1
ep2
l1 l1_ l2 l2_ p1 p1_ p2 p2_ a a_ b b_;
do over v;
v=compress(v);
end;
run;
data d;
infile "G:\f-renoutet\_Sfrp2SPOT\cembrzyn\ACI\X91-2RD-a4.csv" firstobs=2 obs=2 dlm=";" lrecl=5000;
length chaine $200 ;
input chaine;
chaine = compress(upcase(chaine));
if index(chaine,upcase("essai:")) ne 0 then do;
ncar = index(chaine,upcase("essai:"))+length("essai:"); * chemin ;
essai = input(substr(chaine,ncar,1),1.);
end;
if index(chaine,upcase("essai")) ne 0 then do;
ncar = index(chaine,upcase("essai"))+length("essai"); * chemin ;
essai = input(substr(chaine,ncar,1),1.);
end;
else if index(chaine,upcase("chemin")) ne 0 then do;
ncar = index(chaine,upcase("chemin"))+length("chemin");
essai = input(substr(chaine,ncar,1),1.);
end;
else do;
essai = 1;
end;
*;
if index(chaine,upcase("jour")) ne 0 then do;
ncar = index(chaine,upcase("jour"))+length("jour"); * jour de collecte *;
rafale = input(substr(chaine,ncar,4),4.);
end;
else if index(chaine,upcase("s")) ne 0 then do;
ncar = index(chaine,upcase("s"))+length("s");
rafale = input(substr(chaine,ncar,4),4.);
end;
else do;
rafale = 1;
end;
*keep essai rafale;
run;
proc print;run;
%let essai=;
%let rafale=;
data _null_;
set d(obs=1);
call symput("essai",compress(put(essai,8.)));
call symput("rafale",compress(put(rafale,8.)));
run;
%let essai=%eval(&essai);
%let rafale=%eval(&rafale);
%put numero d essai &essai numero de jour de prelevement (rafale) &rafale;
data pe;
************************************;
* lecture du PE echantillonage 2RD *;
* rappel OP120 = OP100 *;
************************************;
input T_OP105 T_OP110 T_OP120 T_OP130 T_OP140 T_OP150 T_OP160;
ESSAI = _n_;
rafale= &rafale;
chemin= 1;
ligne = 1;
cards;
1 1 1 1 1 1 1
2 2 1 1 2 1 2
2 1 2 2 2 2 1
1 2 2 2 1 2 2
;
run;
%put &essai;
data chemin;
set pe(obs=&essai firstobs=&essai);
run;
proc sort data=chemin;
by rafale;
run;
*;
data b;
set a;
length classe_ $4 ;
retain cordon_ classe_ op_ l1_lit l2_lit a_lit b_lst;
*;
array sp l1_lit l2_lit a_lit b_lst;
array me l1 l2 a b;
*;
if (compress(cordon) ne compress(" ")) and (compress(vue) eq compress(" ")) then do;
cordon_ = input(substr(cordon,2),3.);
if cordon_ eq 311 then cordon_ = 131;
else if cordon_ eq 321 then cordon_ = 132;
classe_ = classe;
l1_lit = l1_; * lsl l1 ;
l2_lit = l2_; * lsl l2 ;
a_lit = a_; * lsl a ;
b_lst = b_; * usl b ;
*;
op_ = op;
dmf = .;
end;
else if (compress(cordon) eq compress(" ")) and (compress(vue) ne compress(" ")) then do;
dmf = index(upcase("DMF"),upcase(vue)) ;
erreur = 0; * erreur sur les 4 mesures *;
if (abs(l1) le 1.E-07) and
(abs(l2) le 1.E-07) and
(abs(a) le 1.E-07) and
(abs(b) le 1.E-07) then erreur = 1;
*;
do over me;
********** adaptation donnees M. Jacquot *;
if (abs(sp) gt 1.E-07) and (erreur ne 1) then do;
me = me / sp; * normalisation des mesures par rapport à lsl/usl avec tol = 1*;
end;
else do;
me = .;
end;
end;
rafale = &rafale;
rep = l1;
output;
end;
keep l1 l2 a b op_ dmf cordon_ l1_lit l2_lit a_lit b_lst rafale rep ;
rename cordon_ = cordon op_ = op;
run;
proc sort data=b;
by rafale cordon dmf;
run;
proc summary data=b;
by rafale cordon;
output out=c(keep=_freq_ rafale cordon rename=(_freq_=n)) ;
run;
proc format;
value dmf
1 = 'D'
2 = 'M'
3 = 'F'
;
run;
data b;
merge b c;
by rafale cordon;
length cordon_ $6;
if n > 1 then do;
cordon_ = upcase(compress(put(cordon,4.)||put(dmf,dmf.)));
end;
else do;
cordon_ = compress(put(cordon,4.));
end;
drop cordon ;
rename cordon_ = cordon;
run;
data c;
merge chemin b;
by rafale;
run;
proc sort data=c;
by ligne cordon rafale dmf essai;
run;
data _null_;
set c;
array v _numeric_;
file "G:\f-renoutet\_Sfrp2SPOT\cembrzyn\ACI\X91-2RD-essai&essai..csv" lrecl=3000 ;
if _n_ eq 1 then do;
put "ligne;cordon;rafale;dmf;T_OP105;T_OP110;T_OP120;T_OP130;T_OP140;T_OP150;T_OP160;chemin;REP;essai;"
"l1;l2;a;b;l1_lit;l2_lit;a_lit;b_lst;";
end;
do over v;
if v eq . then v=-999999; * remplacement code donnee manquante *;
end;
cordon=compress(cordon);
if length(cordon) = 1 then do;
put ligne best7. ";"
cordon $1. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 2 then do;
put ligne best7. ";"
cordon $2. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 3 then do;
put ligne best7. ";"
cordon $3. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 4 then do;
put ligne best7. ";"
cordon $4. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
if length(cordon) = 5 then do;
put ligne best7. ";"
cordon $5. ";"
rafale best7. ";"
dmf best7. ";"
T_OP105 best7. ";"
T_OP110 best7. ";"
T_OP120 best7. ";"
T_OP130 best7. ";"
T_OP140 best7. ";"
T_OP150 best7. ";"
T_OP160 best7. ";"
chemin best7. ";"
REP best7. ";"
essai best7. ";"
l1 best7. ";"
l2 best7. ";"
a best7. ";"
b best7. ";"
l1_lit best7. ";"
l2_lit best7. ";"
a_lit best7. ";"
b_lst best7. ";" ;
end;
run;
_________________________________
Ta macro me donne envie de pleurer ... y a rien d'optimisé, c'est une vraie porcherie, la moitié du code ne sert à rien ;-)
Bon je vais déja te donner l'algorithme simplifié, si j'ai le temps je ferai la macro VB après mais tu peux déja y réfléchir ... le mieux est surement de faire une feuille par table.
Bon je vais déja te donner l'algorithme simplifié, si j'ai le temps je ferai la macro VB après mais tu peux déja y réfléchir ... le mieux est surement de faire une feuille par table.
Table A : création des variables cordon, vue, op, classe ... importation du fichier G:\f-renoutet\_Sfrp2SPOT\cembrzyn\ACI\X91-2RD-a4.csv à partir de la ligne 6 Table D : création de 2 macro-variables : essai et rafale comportant des données extraites à la ligne 2 du fichier Supposons que essai=2 et rafale=2 (par exemple) Table PE : essai rafale chemin ligne T_OP105 T_OP110 T_OP120 T_OP130 T_OP140 T_OP150 T_OP160 1 2 1 1 1 1 1 1 1 1 1 2 2 1 1 2 2 1 1 2 1 2 3 2 1 1 2 1 2 2 2 2 1 4 2 1 1 1 2 2 2 1 2 2 Table CHEMIN : lecture de PE firstobs=2 obs=2 2 2 1 1 2 2 1 1 2 1 2 Table B : lecture de la table A Si cordon renseigné et vue est vide alors Si cordon=311 alors cordon=131 Si cordon=321 alors cordon=132 sinon Si cordon est vide et vue renseigné alors DMF=index("DMF",upcase(vue) erreur=0 Si abs(l1)<=1.E-7 et abs(l2)<=1.E-7 etc... alors erreur=1 /*Do over me ... end --> sert a rien car me=.*/ rafale=2 rep=l1 fin si Comptage des ligne (freq) par rafale, cordon Table C : Merge de Table CHEMIN et B par rafale
Bonjour,
J’ai un tableau programmer en HTML. Ce tableau contient des éléments fixes et des éléments variables.
Je veux que les éléments variables soient téléchargés à partir du résultat SAS que j’obtiens.
Je vous soumets donc les questions suivantes.
1/ Est-il possible de programme en HTML sur SAS pour avoir une « output sur mesure » (sans passer par la proc template) ?
2/ Est-il possible de stockés un fichier HTML dans SAS et que celui-ci ne remplisse que les champs voulus ?
J’ai un tableau programmer en HTML. Ce tableau contient des éléments fixes et des éléments variables.
Je veux que les éléments variables soient téléchargés à partir du résultat SAS que j’obtiens.
Je vous soumets donc les questions suivantes.
1/ Est-il possible de programme en HTML sur SAS pour avoir une « output sur mesure » (sans passer par la proc template) ?
2/ Est-il possible de stockés un fichier HTML dans SAS et que celui-ci ne remplisse que les champs voulus ?
Je t'ai envoyé un message privé, comme ton problème est tres spécifique et pour ne pas encombrer le forum, il vaut meiux que nous communiquions par mail.
Steel
Steel
Par message privé, Regarde tout en haut a droite de cette page, tu dois trouver une petite enveloppe avec marqué 1 nouveau message...