Bonjour,

J'ai plusieurs excels dans un répertoire qui pour des raisons pratiques ont été formatées en HTML (ruse pour la rapidité d'écriture).

J'aimerai maintenant pouvoir ouvrir ces fichiers dans un même classeur.

Le problème c'est que j'ai mis en forme mes HTML (bgcolor, etc.) et que j'ai l'impression que tout ça se perd quand on fait la manipulation courante du Sheets(i).Copy-etc. En fait j'en suis pas certain, mais en tout cas mes HTML enlèvent d'entrée le 'grillage' des cellules et formatent les cellules par rapport au texte, ce que ne fait pas le Copy().

Vous allez me dire d'aller chercher les fonctions VBA qui feraient ça 'dans un second temps', mais honnêtement je suis pas loin de mon but et galère déjà suffisamment pour m'infiltrer dans des problèmes récursifs (problèmes impliquant d'autres problèmes). Peut-être existe-il donc un truc simple qui 'ouvre' les fichiers dans des sheets au lieu de devoir les 'copier' (équivalent du wbExcel.Worksheets(1) = fichier... ?)

Mon code actuel est le suivant. Faut savoir qu'il ne marche même pas pour une copie simple des fichiers, je sollicite donc votre aide aussi pour simplement ça, ce serait déjà un premier pas!

Il y a souvent un problème de synthaxe entre les codes VBA largement diffusés et l'adaptation au 'format win32com.client' pour python, ça n'aide pas trop les débutants.

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
 
        xlApp = win32com.client.Dispatch("Excel.Application")
	excelSheet = ['(differents noms des fichiers excel)']
        # manoeuvre pour récupérer le chemin de mon classeur final
	projet = open('Audit.xls', 'w')
	projetFile = os.path.abspath(projet.name)
	projet.close()
	for sheet in excelSheet :
	        sheetFile = sheet + '.xls'
		#vérification que le fichier existe dans le répertoire
		if os.path.isfile(sheetFile) :
                        #recherche encore du path du fichier à copier
			temp = open(sheetFile, 'r')
			sheetFile = os.path.abspath(temp.name)
			temp.close()
			wbAudit = xlApp.Workbooks.Open(projetFile)
			wsAudit = wbAudit.Worksheets
                        #création du sheet qui va 'accueillir' le nouveau fichier
			wsAudit.Add()
			cnt = wsAudit.Count
			print 'cnt', cnt
			wbExcel = xlApp.Workbooks.Open(sheetFile)
			wsExcel = wbExcel.Worksheets
			wsExcel(1).Copy(wsAudit(cnt))
			wbAudit.Close(SaveChanges = 1)
			wbExcel.Close()
Merci par avance pour votre aide.