Re: Problème lors d'une sauvegarde excel (objet automation) |
Sujet: Re: Problème lors d'une sauvegarde excel (objet automation) par nascimo sur 4/6/2007 14:41:34 Mais quand tu dis qu'il vaut mieux travailler document par document, tu parle bien du classeur ??? Car je n'ai besoin que d'un document excel, c'est l'ajout de page qui doit me poser problème ... J'ai recodé ma procédure pour éviter de mélanger workbook et sheet mais sa ne passe toujours pas ... voici mon code : PROCEDURE Exporter_excel() i_NbLignes est un entier i_Cpt est un entier //objet automation paut_MaFeuilleExcel est un objet Automation dynamique s_fichierXLS est une chaîne i_IdFichier est un entier //id pour le fichier texte i_IdFichierTexte est un entier // On vérifie qu'aucun document n'est ouvert sous excel iNbLance est un entier = ExeLancé("Excel.EXE") SI iNbLance > 0 ALORS Info("Le logiciel EXCEL va être fermé"+RC+"Penser à enregistrer votre travail !") ExeTermine("excel.exe") FIN // Sélection du fichier XLS s_fichierXLS = fSélecteur( fRepEnCours()+"\Equipement", "", "Sélection d'un fichier XLS", "Fichier XLS" + TAB + "*.XLS", "XLS", fselCrée) i_IdFichier = fCrée(s_fichierXLS) SI i_IdFichier = -1 ALORS Erreur("Impossible de créer le fichier demandé") SINON //on doit le fermer fFerme(i_IdFichier) FIN //******************************** // RECEPTION //******************************** LanceAppliAssociée(s_fichierXLS,"open") SI ObjetActif("Excel.Application") <> Null ALORS paut_MaFeuilleExcel = ObjetActif("Excel.Application") SINON paut_MaFeuilleExcel = allouer un objet Automation "Excel.Application" FIN paut_MaFeuilleExcel>>DisplayAlerts = Faux //paut_MaFeuilleExcel>>Workbooks(fExtraitChemin(s_fichierXLS, fFichier+fExtension))>>Activate paut_MaFeuilleExcel>>ActiveSheet>>Name = "Emission" paut_MaFeuilleExcel>>Worksheets>>Add paut_MaFeuilleExcel>>ActiveSheet>>Name = "Reception" paut_MaFeuilleExcel>>Worksheets("Reception")>>Activate //initialisation du fichier paut_MaFeuilleExcel>>range("A" + 1)>>value = "Numero" paut_MaFeuilleExcel>>range("B" + 1)>>value = "Identifiant" paut_MaFeuilleExcel>>range("C" + 1)>>value = "Message CAN" paut_MaFeuilleExcel>>range("D" + 1)>>value = "Libellé" paut_MaFeuilleExcel>>range("E" + 1)>>value = "Equipement" paut_MaFeuilleExcel>>range("F" + 1)>>value = "Message à actionner" i_NbLignes = TableOccurrence(TABLE_Reception) SI i_NbLignes > 0 ALORS POUR i_Cpt = 2 A (i_NbLignes + 1) //remplissage du fichier paut_MaFeuilleExcel>>range("A" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Reception.COL_Colonne1 paut_MaFeuilleExcel>>range("B" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Reception.COL_Colonne2 paut_MaFeuilleExcel>>range("C" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Reception.COL_Colonne3 paut_MaFeuilleExcel>>range("D" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Reception.COL_Colonne4 paut_MaFeuilleExcel>>range("E" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Reception.COL_Colonne5 paut_MaFeuilleExcel>>range("F" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Reception.COL_Colonne6 FIN //on termine le fichier paut_MaFeuilleExcel>>range("A" + i_Cpt)>>value = "#FIN" FIN //******************************** // EMISSION //******************************** paut_MaFeuilleExcel>>Worksheets("Emission")>>Activate //initialisation du fichier paut_MaFeuilleExcel>>range("A" + 1)>>value = "Numero" paut_MaFeuilleExcel>>range("B" + 1)>>value = "Identifiant" paut_MaFeuilleExcel>>range("C" + 1)>>value = "Message CAN" paut_MaFeuilleExcel>>range("D" + 1)>>value = "Libellé" paut_MaFeuilleExcel>>range("E" + 1)>>value = "Equipement" paut_MaFeuilleExcel>>range("F" + 1)>>value = "Message qui active" i_NbLignes = TableOccurrence(POP_Config_Equipement.TABLE_Emission) SI i_NbLignes > 0 ALORS POUR i_Cpt = 2 A (i_NbLignes + 1) //remplissage du fichier paut_MaFeuilleExcel>>range("A" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Emission.COL_Colonne1 paut_MaFeuilleExcel>>range("B" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Emission.COL_Colonne2 paut_MaFeuilleExcel>>range("C" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Emission.COL_Colonne3 paut_MaFeuilleExcel>>range("D" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Emission.COL_Colonne4 paut_MaFeuilleExcel>>range("E" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Emission.COL_Colonne5 paut_MaFeuilleExcel>>range("F" + i_Cpt)>>value = POP_Config_Equipement.TABLE_Emission.COL_Colonne6 FIN //on termine le fichier paut_MaFeuilleExcel>>range("A" + i_Cpt)>>value = "#FIN" FIN //enregistrement puis fermeture //paut_MaFeuilleExcel>>Workbooks(fExtraitChemin(s_fichierXLS, fFichier+fExtension))>>Save paut_MaFeuilleExcel>>ActiveWorkBook>>SaveAs(fExtraitChemin(s_fichierXLS, fFichier+fExtension),-4143) paut_MaFeuilleExcel>>ActiveWorkBook>>Close(Faux) // et fermeture du classeur paut_MaFeuilleExcel>>quit libérer paut_MaFeuilleExcel SI ExeTermine("excel.exe") = Faux ALORS Erreur("Erreur lors de la fermeture du logiciel Excel") FIN Je ne comprend pas car je différencie bien les deux et je sauvegarde ensuite uniquement le classeur ... En tout cas, merci de ton aide [EDIT] je suis en train de me demander si sa ne vient pas aussi de l'ouverture de mon doc excel au début ... |