Bonjour,

Voici un code qui fonctionne parfaitement sous xp:

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
# -*- coding: UTF-8 -*-
 
#Imporation des modules
import win32com.client as win32
import win32com.client.dynamic
from pywintypes import UnicodeType, TimeType
import os
 
excel = win32.gencache.EnsureDispatch('Excel.Application')
xls = excel.Workbooks.Open ('F:\Classeur1.xls')
# passage sur la 1ère feuille pour y mettre les infos de chantier
pos = xls.Worksheets("Feuil1")
pos.Activate()      #on active cette feuille
 
excel.Visible = False
#
# Ici le travail d'édition de la première feuille
#par exemple je mets un texte dans la 1ere cellule de la premiére colonne attention ici c'est d'abord la ligne puis la colonne et ca commence à 1 au lieu de 0 d'habitude
pos.Cells(1,1).Value = 'test'
 
# on va chercher la deuxième de feuille (celle du devis)
sht = xls.Worksheets('Feuil2')
sht.Activate()
sht.Cells(13,8).Value = 40
#sauvegarde simple...
xls.SaveAs('F:\test.xls')
xls.Close()
del excel  # Preferer ceci à celle en dessous, car celle-là ne ferme pas le fichier d'origine.
#excel.Application.Quit()
os.startfile('F:\test.xls')
lorsque j'essaie d'exécuter ce script sur windows 8, j'ai ce traceback:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Traceback (most recent call last):
  File "<module1>", line 53, in <module>
  File "C:\Users\PIERR_~1\AppData\Local\Temp\gen_py\2.7\00020813-0000-0000-C000-000000000046x0x1x6\_Workbook.py", line 253, in SaveAs
    , Local)
com_error: (-2147352567, 'Une exception s\x92est produite.', (0, u'Microsoft Office Excel', u"Impossible d'acc\xe9der \xe0 \xab\xa0F:\\/\xa0\xbb. Le fichier peut \xeatre endommag\xe9, en lecture seule ou enregistr\xe9 sur un serveur qui ne r\xe9pond pas.", u'C:\\Program Files (x86)\\Microsoft Office\\Office12\\1036\\XLMAIN11.CHM', 0, -2146827284), None)
Par contre si je mets en ligne 26:
Et en ligne 30:
mon "Classeur1.xls" souvre bien avec les modifs et le script se termine sans erreur...

quelqu'un s'aurait-il pourquoi la fonction xls.SaveAs(nomdefichier) ne fonctionne pas ?

Merci d'avance,