Bonjour tout le monde,

Voici mon problème : j'ai un dossier qui contient 1099 fichiers Excel nommé 2900.xls à 3999.xls certains sont natif Excel 95 et les autres Excel 2002.
Je voulais par macro écrire une macro dans ThisWorkbook de chaque fichiers. J'ai trouvé ce code sur la faq Excel que j'ai un peu de mal à adapter à ma situation.

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
39
40
41
42
43
44
45
46
47
48
49
Sub importe()
 
 
'Nécessite d'activer la référence "Microsoft Visual Basic for Applications Extensibility 5.3"
Dim Wb As Workbook
Dim oModule As CodeModule
Dim VbComp As VBComponent
Dim x As Integer
Dim Cible As String
Dim file As String
Dim i As Integer
 
For i = 2901 To 3999
 
file = Trim(Str(i))
 
 
Application.Workbooks.Open "D:\Dossier\" & file & ".xls"
 
Cible = "NomModule"
'Définit le classeur de destination (qui doit être préalablement ouvert).
Set Wb = Workbooks(file & ".xls")
 
'Charge le module dans le classeur
Set VbComp = Wb.VBProject.VBComponents.Import("D:\ThisWorkbook.cls")
'Le renomme (pour le supprimer plus facilement ultérieurement
VbComp.Name = Cible
 
Set oModule = VbComp.CodeModule
 
'Transfère les données chargées dans ThisWorkbook.
'Attention les données existantes dans "ThisWorkbook" sont écrasées.
With Wb.VBProject.VBComponents("ThisWorkbook").CodeModule
    x = .CountOfLines
    .DeleteLines 1, x
    .InsertLines 1, oModule.Lines(1, oModule.CountOfLines)
End With
 
'Suppression du module précédemment chargé
With Wb.VBProject.VBComponents
    .Remove .Item(Cible)
End With
 
Workbooks(file & ".xls").Save
Workbooks(file & ".xls").Close
 
Next i
 
End Sub
Mais les macros ne s'écrive pas dans les fichiers natif Excel 95, sur ce je m'aperçois qu'en ouvrant manuellement les fichiers et en les enregistrant Excel prévient "3028.xls est un fichier de classeur Microsoft Excel 5.0/95. Voulez-vous convertir ce fichier au nouveau format?"

Donc je réécris une petite macro pour ouvrir tout les fichiers et les enregistrer:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Sub macro2()
 Dim i As Integer
 
 For i = 2900 To 3999
    Application.Workbooks.Open "D:\Dossier\" & i & ".xls"
    ActiveWorkbook.Save
    ActiveWorkbook.Close
 Next i
 
End Sub
Mais avec ce code Excel enregistre au format 95 et je ne sais pas comment le forcer à enregistrer au format 2002.

Merci d'avance à ceux qui pourrons m'aider.