Enregistrer un .xls en vbscript

Fermé
jo77 - 17 août 2004 à 09:56
Serval07 Messages postés 15 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 15 septembre 2008 - 24 oct. 2007 à 13:13
bonjour,

Je voudrai enregistrer mon fichier excel avant de le fermer, juste après l'impression. J'ai fait ça :
Set objXL = CreateObject("Excel.Application") 
objXL.Visible = false 
objXL.Workbooks.Add doc 
objXL.ActiveSheet.PrintOut 
objXL.ActiveSheet.save
objXL.Visible = FALSE
objXL.quit
Set objXL = Nothing


mais ça ne fonctionne pas. Est-ce que quelqu'un pourrait m'aider??
Merci

8 réponses

Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
17 août 2004 à 10:06
FileCopy toto.xls copie_toto.xls

'Déclaration des variables
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel

'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open (toto.xls)



fermeture et enregistrement

wbExcel.Close 'Fermeture du classeur Excel
appExcel.Quit 'Fermeture de l'application Excel
'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing



pour préciser sous quel nom l'enregistrer :

ActiveWorkbook.SaveAs FileName:="C:\Documents\File.xls"



COIN!
1
merci beaucoup !!!
0
J'ai toujours un problème : le fichier s'enregistre dans un nouveau dossier Mais je voudrai qu'il fasse juste un sauver le fichier sans l'enregistrer ailleurs. Voici mon code :
Dim appExcel 'Application Excel 
Dim wbExcel 'Classeur Excel 
Dim wsExcel  'Feuille Excel 

'Ouverture de l'application 
Set appExcel = CreateObject("Excel.Application") 
'Ouverture d'un fichier Excel 
Set wbExcel = appExcel.Workbooks.Add ("C:\MR_E3_1_Others.xls") 



'fermeture et enregistrement 
appExcel.ActiveSheet.PrintOut 
wbExcel.save
wbExcel.Close 'Fermeture du classeur Excel 
appExcel.Quit 'Fermeture de l'application Excel 
'Désallocation mémoire 
Set wsExcel = Nothing 
Set wbExcel = Nothing 
Set appExcel = Nothing 
0
Bonjour,

Vous ne spécifier pas le répertoire de sauvegarde, alors XL sauvegarde dans le répertoire par défault. Au moment de lancer
la commande "wbExcel.save", vous ne spécifier pas de chemin d'accès, par conséquent XL sauvegarde dans le répertoire courant de l'application XL.

Utilisez plutôt :

wbExcel.SaveAs "C:\MR_E3_1_Others.xls"

Lupin
0
re :

Exemple de pilotage d'Excel par VBS ici :

http://www.oricom.ca/lupin/Document/ExcelVBS.txt

Lupin
0
quand je fais ça, ça me mets "le fichier existe déjà, voulez-vous le remplacer"; en fait j'aimerai enregistrer sans avoir ce message.
Merci
0
Utilisateur anonyme
17 août 2004 à 16:39
re :

Normal, si le fichier est déjà présent, regarder dans l'exemple cité, et appliquer la routine suivante :

If (FichierExistant(Fichier)=True) Then
Set xlBook = xlApp.Workbooks.Open(Fichier)
Flag = True
Else
xlApp.SheetsInNewWorkbook = 1
Set xlBook = xlApp.Workbooks.Add
End If

'
Function FichierExistant(NomFichier)

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")
FichierExistant = fso.FileExists(NomFichier)
Set fso = Nothing

End Function

'
Je crois qu'il est possible de placer un paramètre dans la commande SaveAs pour forcer d'écraser un fichier existant mais je ne le connais pas de mémoire et je n'ai pas mon bouquin sous la main, toutefois vous pouvez contourner en détruisant le fichier s'il existe.

Lupin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 août 2004 à 17:06
Bonjour,

Je ne sais pas si vous avez trouvé l'option, alors je reporte ici les lignes m'ayant permis de contourner le problème.

xlApp.DisplayAlerts = False
xlBook.SaveAs "C:\Test.xls"
xlApp.DisplayAlerts = True
xlApp.Quit


Lupin
0
Merci beaucoup. J'ai trouvé aussi comme option
wbExcel.Close -1
et ça l'enregistre dans le meme fichier.
0
Bonjour a tous, je comprends que ce sujet date mais il m'a mis sur la voie pour ecrire mon code. Je précise que je débute en Vbs.

J'aimerais monter un code qui me permet de

1.ouvrir une boite de dialogue qui demandera "est ce que le mois est écoulé en entier". Celle ci proposera deux options: non et on sort de la procédure ou oui et on lance la procédure suivante:

1.1.j'ai un grapphique dans un fichier excel (grap1.feuille1.xls)

1.2.je veux aller chercher ce graphe par une commande

1.3.je veux choisir l'imprimante cute pdf qui imprimera le graphe

1.4.je veux aller enregister le pdf resultant de l'impression dans un repertoire bien spécifique (c:/repertoire-specifique)

Je n'ai pas fait le point 1

pour le point 1.1 j'ai plutot pris la feuille (feuille.xls) car donner l'adresse du graphe je sais pas faire.

le point 1.2 je crois que c'est bon

le point 1.3 me retourne une erreur(xlApp.ActivePrinter="CutePDF Writer") je ne sais pas pourquoi

le point 1.4, j'y reflechit (une proposition serait la bienvenue)

Mon code:
Dim xlapp, classeur, feuille, Doc

Set xlapp = CreateObject("Excel.Application")
xlapp.Visible = True

Set classeur = xlapp.Workbooks.add
Set feuille = xlapp.ActiveSheet

'point 1.1
Set Doc = xlApp.WorkBooks.open("C:\Documents and Settings\stagiaire\Bureau\feuille.xls")

Ici on définit l'imprimante qui sera utilisée.
xlApp.ActivePrinter="CutePDF Writer"

Doc.PrintOut
Doc.Close
0
Serval07 Messages postés 15 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 15 septembre 2008 2
24 oct. 2007 à 13:13
Bonjour, vous avez la solution à mon problème. Je voudrai enregistrer le fichier Excel modifie avant de le fermer et saugarder le fichier sous différent nom après chaque utilisation de l`application. J`ai essayé plusieurs code mais sa ne marche pas.
0