Bonjour,
Je vais essayer d'expliquer ce dont j'ai besoin :
J'aimerais d'abord créer un fichier excel avec plusieurs feuille que je nome via l'utilisateur
Ensuite a chaque feuille du fichier je veux créer un fichier word du même nom que la feuille. C'est la que ça bloque.
J'ai crée un boucle for. A la première itération tout se passe bien le fichier est bien fait mais a la deuxième itération (peut importe la valeur de i!=1) il y a une erreur : (-2147023179, 'The interface is unknown.', None, None)
l'erreur se trouve sur la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
return self._oleobj_.InvokeTypes(376, LCID, 1, (24, 0), ((16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17)),FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks)
dans le fichier C:\Users\yannc\AppData\Local\Temp\gen_py\3.7\00020905-0000-0000-C000-000000000046x0x8x7\_Document.py
Voici mon code :
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
31
32
33
34
35
36
37
38
 
i=int(input('nombre diteration',))
 
fichier = xl.Workbook() #creation du fichier xls
 
doc = win32.gencache.EnsureDispatch('Word.Application')
doc.Visible = False
word_doc = doc.Documents.Add()
 
for e in range(i):
    name = input("nom de la feuille : ",) # Creation de la feuille dédiée
    sheet = fichier.add_sheet(name)
    sheet.write(0,0,'hello world') #test de remplissage
    sheet.write(0,1,'B1?')
    sheet.write(1,0,e)
    sheet.write(1,1,'B2!')
    fichier.save('chemin\\fichier.xls') # enregistre le fichier chemin a ctrl C ctrl V
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    wb = excel.Workbooks.Open(r'fichier.xls')
    sheet = wb.Sheets(e+1)
    sheet.UsedRange.Copy()
    try:
        word_doc = doc.Documents.Add()
        word_doc.Content.PasteExcelTable(False, False, False)
        output_path = f'C:\\Users\\yannc\\Documents\\fichier{name}.docx'
        word_doc.SaveAs(output_path)
    except Exception as e:
        print('Erreur :', str(e))
    finally:
        wb.Close(False)
        word_doc.SaveAs(f'C:\\Users\\yannc\\Documents\\fichier{name}.docx')
        word_doc.Close()
        excel.Quit()
        doc.Quit()
 
doc = win32.gencache.EnsureDispatch('Word.Application')
doc.Visible = True
word_doc = doc.Documents.Add()
désolé pour mon manque de clarté j'espère que c'est mieux la
Merci d'avance j'espère avoir été clair dans mes explication à vous de jouer les khey !