Bonjour,

Je suis débutant en vba ( j'ai commencé il y a un mois ...) et j'ai un problème avec l'un de mes codes.
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
50
51
52
53
54
55
56
Sub check_inclu()
p = 0
k = 0
m = 0
'Boucle pour naviguer sur les différents étages des noms_inclus
For n = 0 To 20
'Boucle pour naviguer sur les différentes lignes du compteur
    For k = 0 To (nb_file2 - 1)
'Boucle pour checker les inclus de chaque fichier
    For i = 0 To (compteur_inclu2(n, k) - 1)
'On test si l'inclu existe
        My_inclu = Dir(path_inclu2(n, i))
        If My_inclu <> "" Or My_inclu <> nom_inclu2(n, i) Then
'S'il existe on ouvre le fichier
            Open path_inclu2(n, i) For Input As #4
'Tant que la fin du fichier n'est pas atteinte
            Do While Not EOF(4)
'On stock chaque ligne
            Line Input #4, cherche_inclu
'On check la ligne
            If Left(cherche_inclu, 6) = "IMPFIL" Or Left(cherche_inclu, 5) = "INCLU" Then
'Si elle répond aux critètres, on la stock dans le niveau n+1
                nom_inclu2(n + 1, p) = Right(cherche_inclu, Len(cherche_inclu) - 8)
'On supprime les espaces s'il y en a
                nom_inclu2(n + 1, p) = Replace(nom_inclu2(n + 1, p), " ", "")
                pos_path = InStrRev(path_inclu2(n, i), "\")
                path_inclu2(n + 1, p) = Left(path_inclu2(n, i), pos_path) & nom_inclu2(n + 1, p)
'On compte le nombre de fichier inclu relevé dans ce niveau n+1
                compteur_inclu2(n + 1, m) = compteur_inclu2(n + 1, m) + 1
'On passe à la ligne suivante du niveau
                p = p + 1
            End If
'On réitère jusque  la fin du fichier
            Loop
'On ferme l'accès au fichier
            Close #4
'Si le fichier n'existe pas
            Else
'On l'indique par un message
            MsgBox "le fichier : " & nom_inclu2(i, 0) & " n'existe pas"
'On quitte la procédure
            Exit Sub
 
        End If
'On passe au i suivant
    Next i
    m = m + 1
'on passe au k suivant
    Next k
    nb_file2 = m
    p = 0
    m = 0
'On passe au niveau n suivant
Next n
 
End Sub
Ce code a pour but de consulter les fichiers stockés dans le tableau à 2 dimensions nom_inclu2, de vérifier s'il y a une ligne qui commence par INCLU et si c'est le cas de récupérer le nom du fichier.
Cependant la taille des fichiers qu'il lit peut faire100 lignes ou plus de 70 000 lignes.... Ce qui fait que le code est très long à s'éxecuter....
Auriez-vous une piste pour permettre une éxecution plus rapide ?
Merci du temps que vous voudrez bien me consacrer