IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macro Discussion :

MARCO pour exporter table dans fichier EXCEL


Sujet :

Macro

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Points : 2
    Points
    2
    Par défaut MARCO pour exporter table dans fichier EXCEL
    Bonjour Tous,
    je cherche à exporte des tables sas vers un fichiers exels existant deje et comportant plusieurs onglet.j'ai fait une macro sas qui fait cela mais au lieu de me remplacer l'onglet voulu par la table sas voulu il me remplacer le fichier excel par la table et je perds tous les autres onglet.voila ma macro

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    %macro export_vers_excel(tab_in=,fic_out=,sheet_out=);
     
    data _&tab_in(keep=&var_commune);
    	retain &var_commune;
    	set &tab_in;
    run ;
     
    /* En cas d'utilisation Stored Process
    data mylib.&sheet_out ; set _&tab_in; run ; */
     
    data &tab_in._out(drop=col_vide1);
    	set TABTEMP_2_2_1
    		_&tab_in;
    run ;
     
    %export_fichier(
      	server=&PCFILESERVER,
    	lib_dep=work,
    	fic_dep=&tab_in._out,
    	chem_arr=&chemin_arr,
    	fic_arr=&fic_out, 				/* nom du fichier arrive */
    	tab_out=&sheet_out, 				/* nom table access ou feuil excel */
    	dbms=excelcs, 				/* type du fichier excelcs ou accesscs */
    	replace=oui);
     
    %mend export_vers_excel; 	
     
     
    %let chemin_arr = %str(\\ar2pr302.groupe.generali.fr\commun\groupe\Groupes\ACT\Bilan_GB200\Rapprochement_GB2000_SAP\Novembre_2008\);
    %let var_commune= %str(numpro produit prodcompta police libpro typereglement codeproduitcomptable 
    			reglement datecomptable lotcomptable montant existelot montanthorslot montantaveclot);
    ***Filename Base DDE 'Excel|/app/sas/users/commun/groupe1/Groupes/ACT/Bilan_GB2000/Rapprochement_GB2000_SAP/Novembre_2008/[ExtractReglementGB2000_1108.xls]/Generali Invest!L3C1:L60000C14' NOTAB;
    %export_vers_excel(tab_in=Ginvest,
    		   fic_out=ExtractReglementGB2000_1108,
    		   sheet_out=Generali_Invest);
     
    ***Filename Base DDE 'Excel|/app/sas/users/commun/groupe1/Groupes/ACT/Bilan_GB2000/Rapprochement_GB2000_SAP/Novembre_2008/[ExtractReglementGB2000_1108.xls]/Exel!L3C1:L60000C14' NOTAB;
    %export_vers_excel(tab_in=Exel,
    		   fic_out=ExtractReglementGB2000_1108,
    		   sheet_out=Exel);
     
    ***Filename Base DDE 'Excel|/app/sas/users/commun/groupe1/Groupes/ACT/Bilan_GB2000/Rapprochement_GB2000_SAP/Novembre_2008/[ExtractReglementGB2000_1108.xls]/Excellence!L3C1:L60000C14' NOTAB;
    %export_vers_excel(tab_in=Excellence,
    		   fic_out=ExtractReglementGB2000_1108,
    		   sheet_out=Excellence);
     
    et voici le corps de ma macro expor
    %macro export_fichier(
    	server=,        /* adresse IP du poste */
    	lib_dep=, 		/* nom de librairie SAS */
    	fic_dep=, 		/* nom de la table SAS */
    	chem_arr=, 		/* repertoire arrive */
    	fic_arr=, 		/* nom du fichier arrive */
    	tab_out=,   	/* nom table access ou feuil excel */
    	dbms=excelcs,  	/* type du fichier excelcs accesscs */
    	replace=oui) / store;
     
    PROC EXPORT DATA=
    	%if "&fic_dep" ne "" %then %do ;
    		%if "&lib_dep" ne "" %then %do ; 
    			&lib_dep..&fic_dep
    		%end;
    		%else %do ;
    			&fic_dep 
    		%end ;
    	%end ; 
    	%if "%upcase(&dbms)" ne "EXCELCS" %then %do ;
    			outtable="&tab_out" 
    			DBMS=&dbms
    			%if "%upcase(&replace)" ne "NON" %Then %do ;
    				REPLACE ;
    			%end ;
    			database = "&chem_arr.&fic_arr..mdb" ;
    	%end;
    	%else %do ;
    		OUTFILE = "&chem_arr.&fic_arr..xls" 
    		DBMS=&dbms
    		%if "%upcase(&replace)" ne "NON" %Then %do ;
    			REPLACE
    		%end ;
    			;
    			SHEET="&tab_out" ;
    	%end;
    		server="&server";
    		port=8621 ;
     RUN;
     
    %mend export_fichier ;
    merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Points : 40
    Points
    40
    Par défaut
    Salut.

    essaye l'ods TAGSETS.EXCELXP :

    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
     
    FILENAME out1 "C:\essai.xls";
    ODS TAGSETS.EXCELXP FILE = out1 OPTIONS (SHEET_INTERVAL="none") 
    OPTIONS (SHEET_LABEL="" SHEET_NAME="nom du premier onglet");
    TITLE;
    FOOTNOTE;
     
    Les étapes DATA de ton premier onglet
     
    ODS TAGSETS.EXCELXP OPTIONS (SHEET_INTERVAL="none") 
    OPTIONS (SHEET_LABEL="" SHEET_NAME="nom du deuxième onglet");
     
    Les étapes DATA de ton deuxième onglet
     
    ODS TAGSETS.EXCELXP OPTIONS (SHEET_INTERVAL="none") 
    OPTIONS (SHEET_LABEL="" SHEET_NAME="nom du troisième onglet");
     
     
    Les étapes DATA de ton troisième onglet
     
    ODS TAGSETS.EXCELXP CLOSE ;
    Introduit ensuite les macros aux bons emplacements.
    ODS TAGSETS.EXCELXP te permet de gérer facilement les onglets. En changeant SHEET_INTERVAL="none" par proc ou table tu pourras aussi changer d'onglet à chaque proc ou chaque étape data.

    @+

Discussions similaires

  1. [WD15] Code pour saisie table dans fichier
    Par fr832 dans le forum WinDev
    Réponses: 3
    Dernier message: 03/06/2012, 00h25
  2. [AC-2007] Exporter table dans fichier .xlsx
    Par Runsh63 dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/11/2011, 19h44
  3. [AC-2007] exportation donnée dans fichier excel
    Par popofpopof dans le forum VBA Access
    Réponses: 11
    Dernier message: 14/06/2011, 22h04
  4. Exportation table en fichier excel
    Par keks42 dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/12/2008, 23h05
  5. Exporter résultats dans fichier excel [forms 6i]
    Par OUALASS dans le forum Forms
    Réponses: 4
    Dernier message: 30/05/2006, 20h38

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