rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Enregistrer un .xls en vbscript

jo77, le mardi 17 août 2004 à 09:56:45
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
Répondre à jo77  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Canard007, le mardi 17 août 2004 à 10:06:37
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!
Répondre à Canard007

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jo77, le mardi 17 août 2004 à 10:26:07
merci beaucoup !!!
Répondre à jo77

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jo77, le mardi 17 août 2004 à 15:34:09
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 
Répondre à jo77

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin, le mardi 17 août 2004 à 15:53:27
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
Répondre à Lupin

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin, le mardi 17 août 2004 à 15:55:44
re :

Exemple de pilotage d'Excel par VBS ici :

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

Lupin
Répondre à Lupin

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jo77, le mardi 17 août 2004 à 15:58:04
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
Répondre à jo77

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin.Arsene, le mardi 17 août 2004 à 16:39:34
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
Répondre à Lupin.Arsene

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin.Arsene, le mercredi 18 août 2004 à 17:06:49
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
Répondre à Lupin.Arsene

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jo77, le mercredi 18 août 2004 à 17:11:28
Merci beaucoup. J'ai trouvé aussi comme option
wbExcel.Close -1
et ça l'enregistre dans le meme fichier.
Répondre à jo77

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
clark, le jeudi 10 mai 2007 à 12:01:14
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
Répondre à clark

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Serval07, le mercredi 24 octobre 2007 à 13:13:49
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.
Répondre à Serval07
Logiciels pertinents trouvés dans les téléchargements
Télécharger Complément de Microsoft Office 2007 : Enregistrement en PDF dans Microsoft 1Complément de Microsoft Office 2007 : Enregistrement en PDF dans Microsoft - Ce téléchargement vous permet d'exporter et d'enregistrer des fichiers au format PDF dans huit programmes de Microsoft...Catégorie: Bureautique
Licence: Freeware/gratuit
Télécharger Free Excel/Xls to Pdf Converter 5.1Free Excel/Xls to Pdf Converter - Convertissez rapidement et facilement vos documents Excel en document PDF. Rien de plus simple avec Excel/Xls to Pdf...Catégorie: PDF
Licence: Freeware/gratuit
Télécharger Enregistrer sous Editeur   1.11Enregistrer sous Editeur - Enregistrer Sous éditeur est un utilitaire plus qu'indispensable. Il permet de personnaliser la liste d'emplacements de la...Catégorie: Optimisation
Licence: Freeware/gratuit
Télécharger Excel Viewer 2003Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même...Catégorie: Tableur
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « enregistrer un .xls en vbscript »