Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2012, 18h24   #1
Membre du Club
 
Inscription : mars 2008
Messages : 156
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 156
Points : 40
Points : 40
Par défaut Ouvrir fichier excel depuis sas 9.3

Bonjour,

Je souhaiterai ouvrir un fichier excel depuis sas (pour ensuite lancer des macro vba).
Sous sas 9.1 j'utilisais le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
options noxwait noxsync;
filename sys dde "Excel|system";
DATA _NULL_ ;
length FID RC STOP 8 ;
FID = FOPEN("SYS","S");                         
IF FID = 0 then do ;                            
RC = SYSTEM("start excel");                 
STOP = datetime() + 10 ;                    
do while (FID = 0) ;                        
FID = FOPEN("SYS","S");                 
IF (Datetime() > STOP) then FID = 1 ;   
end ;
end ;
RC = fclose(FID);
run ;
DATA _null_;
file SYS;
put "[ERROR(false)]"; 
put "[open(""adresse\nom du fchier.xls"",,TRUE)]";
run;
Apparement sous 9.3 ce code ne fonctionne plus :
Quelqu'un aurait-il une idée?


Merci d'avance.
geofnich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 19h13   #2
Membre expérimenté
 
Inscription : avril 2009
Messages : 538
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 538
Points : 541
Points : 541
tu as une erreur dès le filename ?
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 19h18   #3
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
C'est le délai pendant lequel on attend l'ouverture d'Excel qui est trop court. Il faut augmenter ce nombre :
Code :
STOP = datetime() + 20 ;
chez moi ça fonctionne avec 20 (Excel 2010 et SAS 9.3) mais selon les PC et les versions d'Excel, il faudra peut-être davantage.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 19h19   #4
Membre du Club
 
Inscription : mars 2008
Messages : 156
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 156
Points : 40
Points : 40
Non j'obtiens cette erreur lors du code :
Code :
1
2
3
4
5
6
 
DATA _null_;
file SYS;
put "[ERROR(false)]"; 
put "[open(""adresse\nom du fchier.xls"",,TRUE)]";
run;
geofnich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 20h04   #5
Membre expérimenté
 
Inscription : avril 2009
Messages : 538
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 538
Points : 541
Points : 541
la réponse d'olivier est la bonne;

Il vaut mieux tjrs utiliser le test de vérification de présence du lien vers Excel.

Moi ce que j'avais fait c'est attendre au max 60 secondes...

ha le DDE quelle plaie
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 20h38   #6
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Voici le code communément utilisé pour Démarrer Excel tranquillement.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
options noxwait noxsync;
filename sys dde "Excel|system";
DATA _NULL_ ;
    length FID RC STOP 8 ;
    FID = FOPEN("SYS","S");                         
    IF FID = 0 then do ;                            
        RC = SYSTEM("start excel");                 
        STOP = datetime() + 10 ;                    
        do while (FID = 0) ;                        
            FID = FOPEN("SYS","S");                 
            IF (Datetime() > STOP) then FID = 1 ;   
        end ;
    end ;
    RC = fclose(FID);
run ;
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 22h01   #7
Membre du Club
 
Inscription : mars 2008
Messages : 156
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 156
Points : 40
Points : 40
Ok merci pour toute vos réponses.
Je vérifierais des demain matin,
Bonne soirée.
geofnich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 09h27   #8
Membre du Club
 
Inscription : mars 2008
Messages : 156
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 156
Points : 40
Points : 40
Apparemment cela ne fonctionne toujours pas.

Après lancement de ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
options noxwait noxsync;
filename sys dde "Excel|system";
DATA _NULL_ ;
length FID RC STOP 8 ;
FID = FOPEN("SYS","S");                         
IF FID = 0 then do ;                            
RC = SYSTEM("start excel");                 
STOP = datetime() + 10 ;                    
do while (FID = 0) ;                        
 FID = FOPEN("SYS","S");                 
IF (Datetime() > STOP) then FID = 1 ;   
end ;
end ;
RC = fclose(FID);
run ;
 
DATA _null_;
STOP = datetime() + 60 ;
file SYS;
put "[ERROR(false)]"; 
put "[open(""\\ROUSSILLON\Office\Camca-Commun\Nichil\Etudes\Caution\Ratio_prime_HorsLocatifs_HorsTravaux\Resultats\20111231 - tgn -RatioPrimeHorsLocatifHorsTravaux.xls"",,TRUE)]";
run;
J'obtiens l'erreur suivante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
31       !   DATA _null_;
32         file SYS;
33          put "[ERROR(false)]";
34           put
34       ! "[open(""\\ROUSSILLON\Office\Camca-Commun\Nichil\Etudes\Caution\Ratio_prime_HorsLocat
34       ! ifs_HorsTravaux\Resultats\20111231 - tgn
34       ! -RatioPrimeHorsLocatifHorsTravaux.xls"",,TRUE)]";
35         		run;
 
ERROR: Erreur de syntaxe DDE dans le nom physique.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: L'étape DATA used (Total process time):
      real time           0.00 secondes
      cpu time
Alors que lorsque je lance le même programme sur sas 9.1 (avec l'intégralité des modules sas) cela fonctionne. Est ce parce que je ne dispose pas des modules sufficant sous 9.3?
geofnich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 10h27   #9
Membre du Club
 
Inscription : mars 2008
Messages : 156
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 156
Points : 40
Points : 40
J'ai finallement réussi à ouvrir excel avec la commande :
Code :
1
2
3
 
options noxwait noxsync;
X explorer \\ROUSSILLON\Office\Camca-Commun\Nichil\Etudes\Caution\Ratio_prime_HorsLocatifs_HorsTravaux\Resultats\20111231 - tgn -RatioPrimeHorsLocatifHorsTravaux.xlsm;
Pour le lancement de la macro (macro1) à l'aide du code suivant :
Code :
1
2
3
4
5
 
DATA _NULL_ ;
file sys;
put "[run(""Macro1"")]";
run;
J'ai le même message d'erreur que précédemment...
geofnich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 14h45   #10
Membre du Club
 
Inscription : mars 2008
Messages : 156
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 156
Points : 40
Points : 40
La solution :
http://ftp.sas.com/techsup/download/...E80.html#44601
geofnich est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/01/2012, 15h20   #11
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Que te retourne ce code stp :

__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h02.


 
 
 
 
Partenaires

Hébergement Web