Bonjour à tous,

Au sein d'un programme de simulation de mortalité, j'ai un petit bout de code qui sert à vérifier la présence de certains fichiers. Ce bout de code utilisait la fonction filesearch qui n'est plus supportée par office 2007.

Après avoir suivi le tutoriel qui se trouve ici : http://silkyroad.developpez.com/vba/classefilesearch/, j'ai modifié mon programme comme suit :

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
 
Public Function CheckFiles() As Boolean
    Dim files(2) As String, temp As String
    Dim i As Integer, j As Integer
    Dim found As Boolean
 
    Dim Recherche As ClFileSearch.ClasseFileSearch
    Set Recherche = ClFileSearch.Nouvelle_Recherche
 
 
    files(1) = "fitModels.r"
    files(2) = "simModels.r"
 
    CheckFiles = True
 
    'With Application.FileSearch
        '.NewSearch
        '.FileType = msoFileTypeAllFiles
        '.LookIn = ThisWorkbook.Path
        '.SearchSubFolders = False
        '.Execute
 
    With Recherche
        .FolderPath = ThisWorkbook.Path
        .SubFolders = False
        .Execute
 
        For i = 1 To UBound(files, 1)
            found = False
            For j = 1 To .FoundFilesCount
                temp = Right(.FoundFiles.Item(j), Len(.FoundFiles.Item(j)) - Len(ThisWorkbook.Path) - 1)
                If temp = files(i) Then
                    found = True
                    Exit For
                End If
            Next j
            If Not found Then
                CheckFiles = False
                Exit For
            End If
        Next i
    End With
 
End Function
Cependant il ne fonctionne toujours pas.
Je souhaiterais savoir par quoi je peux remplacer .FoundFiles.Item(j) car Excel me donne le message d'erreur suivant : "Erreur de compilation : Membre de méthode ou de données introuvable" au sujet de cette instruction.
J'ai essayé de mettre .Files(j).strFileName à la place mais après j'ai ce message d'erreur : "Erreur de compilation : Type d'argument ByRef incompatible".

Merci de votre aide.