SAS et VB
Fermé
So
-
8 juil. 2003 à 17:56
caloo Messages postés 15 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 20 mars 2008 - 5 mars 2008 à 09:47
caloo Messages postés 15 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 20 mars 2008 - 5 mars 2008 à 09:47
A voir également:
- SAS et VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Freebox sas c'est quoi - Forum Freebox
- Avis sur sas waterlot et associés - Forum Vos droits sur internet
- Huissier - Forum Orange
21 réponses
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
9 juil. 2003 à 11:36
9 juil. 2003 à 11:36
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 :-))))
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
9 juil. 2003 à 12:07
9 juil. 2003 à 12:07
A moins qu'iul existe un module specifique sur le net...
. .
\_/
. .
\_/
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
saimanes
Messages postés
5
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
2 mai 2007
24 avril 2007 à 17:54
24 avril 2007 à 17:54
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.
caloo
Messages postés
15
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
11 déc. 2007 à 14:53
11 déc. 2007 à 14:53
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;
_________________________________
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
>
caloo
18 déc. 2007 à 18:27
18 déc. 2007 à 18:27
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 ?
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
14 déc. 2007 à 14:19
14 déc. 2007 à 14:19
Il suffit de faire de l'ODS HTML
dans google recherche : sas ods html
Steel
dans google recherche : sas ods html
Steel
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
18 déc. 2007 à 18:25
18 déc. 2007 à 18:25
-
caloo
Messages postés
15
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
19 déc. 2007 à 09:51
19 déc. 2007 à 09:51
OK
c'est vrais que la moitier ne sert a rien ! lol
merci pour ton aide
je suis a fond dedans !
A+
c'est vrais que la moitier ne sert a rien ! lol
merci pour ton aide
je suis a fond dedans !
A+
caloo
Messages postés
15
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
7 janv. 2008 à 16:46
7 janv. 2008 à 16:46
help !
j'y arrive pas :-(
j'y arrive pas :-(
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
7 janv. 2008 à 18:07
7 janv. 2008 à 18:07
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
caloo
Messages postés
15
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
8 janv. 2008 à 09:14
8 janv. 2008 à 09:14
tu me l'as envoyé sur quoi ? mail ? pm ?
je ne vois rien !
je ne vois rien !
steelspirit
Messages postés
277
Date d'inscription
lundi 12 mai 2003
Statut
Membre
Dernière intervention
22 octobre 2008
80
8 janv. 2008 à 09:57
8 janv. 2008 à 09:57
Par message privé, Regarde tout en haut a droite de cette page, tu dois trouver une petite enveloppe avec marqué 1 nouveau message...
caloo
Messages postés
15
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
17 janv. 2008 à 09:27
17 janv. 2008 à 09:27
pour info a tout le monde
le systeme des message privé a un probleme
steelspirit m'a laissé un message, mais ça n'apparait pas
en haut a droite (0 nouveau(x) message(s)) !!!
alors que quand je clique dessus je vais dans ma boite
et je vois un message...
le systeme des message privé a un probleme
steelspirit m'a laissé un message, mais ça n'apparait pas
en haut a droite (0 nouveau(x) message(s)) !!!
alors que quand je clique dessus je vais dans ma boite
et je vois un message...
caloo
Messages postés
15
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
4 févr. 2008 à 10:48
4 févr. 2008 à 10:48
salut !
pour revenir a sas
j''aurai une petite question :
ça veut dire quoi : "call symput("essai",compress(put(essai,8.)));" ?
merci
pour revenir a sas
j''aurai une petite question :
ça veut dire quoi : "call symput("essai",compress(put(essai,8.)));" ?
merci