Bonjour,
J'ai un problème avec la copy d'une macro dans un fichier excel.
et voici l'erreur :
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 excel = win32.gencache.EnsureDispatch('Excel.Application')#demarrer l'instance Excel avec pywin32 excel.Visible = False#ne pas faire monter à l'écran le fichier excel xls = excel.Workbooks.Open(name)#ouvrir notre fichier excel qui a été modifié avant xlmodule = xls.VBProject.VBComponents.Add(1) # vbext_ct_StdModule creation du module de la fonction LASTSAVED() qui n'existe pas en natif sous Excel sCode = '''Function LastSaved() As Date Application.Volatile LastSaved = ThisWorkbook.BuiltinDocumentProperties(12) End Function'''#Formule VBA xlmodule.CodeModule.AddFromString(sCode)#Ajout du code VBA dans Excel xls.Worksheets("Recap projet").Range("F4").Value='=LASTSAVED()'#ecrire la formule dans la case xls.Save()#Sauvegarder le fichier xls.Close()#le fermer excel.Quit()#quitter l'instance
mon fichier est quand même créé mais en mode protégé, la macro n'est pas dedans et la case F4 est vide aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\TD8821\AppData\Local\Programs\Python\Python35\lib\tkinter\__init__.py", line 1550, in __call__ return self.func(*args) File "H:\Python\test\test projet\Risk_analysis.py", line 987, in save asksaveasfilenameex()#lancement de la fonction de sauvegarde avec menu pour choisir l'emplacement du fichier File "H:\Python\test\test projet\Risk_analysis.py", line 271, in asksaveasfilenameex compilation(name)#va ecrire dans l'Excel File "H:\Python\test\test projet\Risk_analysis.py", line 940, in compilation xls = excel.Workbooks.Open(name)#ouvrir notre fichier excel qui a été modifié avant File "C:\Users\TD8821\AppData\Local\Temp\gen_py\3.5\00020813-0000-0000-C000-000000000046x0x1x7\Workbooks.py", line 78, in Open , Converter, AddToMru, Local, CorruptLoad) pywintypes.com_error: (-2147352567, 'Une exception sest produite.', (0, 'Microsoft Excel', 'Office a détecté un problème avec ce fichier. Pour la sécurité de votre ordinateur, ce fichier ne peut pas être ouvert.', 'xlmain11.chm', 0, -2146827284), None)
Si quelqu'un a déjà rencontré ce problème ou peut m'aider !
EDIT : Bonjour,
J'ai modifié mon programme il manque juste un petit truc c'est qu'il arrive à fermer le fichier excel mais pas excel en lui meme comment faire ?
Merci d'avance
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 os.startfile(name) xls = win32.GetObject(name) xlmodule = xls.VBProject.VBComponents.Add(1) # vbext_ct_StdModule creation du module de la fonction LASTSAVED() qui n'existe pas en natif sous Excel sCode = '''Function LastSaved() As Date Application.Volatile LastSaved = ThisWorkbook.BuiltinDocumentProperties(12) End Function'''#Formule VBA xlmodule.CodeModule.AddFromString(sCode)#Ajout du code VBA dans Excel xls.Worksheets("Recap projet").Range("F4").Value='=LASTSAVED()'#ecrire la formule dans la case xls.Save() xls.Close() os.remove(name)
Valentin.
Partager