Bonjour à tous,

Ceci est mon premier post donc veuillez m'excuser si je me suis trompé sur la mise en page ou d'une toute autre façon.
Je débute sur VBA pour la lecture de document et je rencontre un problème.
J'ai déjà utilisé plusieurs fois des fonctions mais là, j'obtiens le problème : "Compile error: Expected Sub, Fonction, or Property" et je n'arrive pas à le résoudre..
J'ai besoin de votre aide, je vous en remercie d'avance

Voici mon premier code qui me permet de faire une lecture de l'ensemble des lignes d'un document :
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
'Option Explicit
Public Sub Lecture_document()
    'Détermination des variables
    Dim intFic As Integer
    Dim strLigne As String, strChemin2 As String
    Dim TestChemin As Variant
    Dim dummy As Boolean
    'FreeFile permet d'obtenir un chiffre de 1 à 255 pour un accès seul
    'FreeFile(1) permet d'avoir un chiffre entre 256 et 512 --> accès partagé
    intFic = FreeFile
    'Obligation de définir strChemin
    strChemin2 = "H:\Macro\GEN6-H22-nutInterfWC-AlStem-JE4-corr.txt"
    Call TestChemin("H:\Macro\GEN6-H22-nutInterfWC-AlStem-JE4-corr.txt")
    If TestChemin = True Then
        'ouverture du fichier
        Open strChemin2 For Input As intFic
        'operation jusqu'à la fin du fichier End Of File
        While Not EOF(intFic)
            'lecture du fichier ligne par ligne
            Line Input #intFic, strLigne
            'MsgBox strLigne
        Wend
        'Peu importe le type de fichier (FreeFile), il faut utiliser Close
        Close intFic
    End If
End Sub
Afin de vérifier l'existence du fichier, j'ai repris une fonction créé lors du tutoriel de Christophe Warren https://warin.developpez.com/access/fichiers/#LI-D.
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
Function TestChemin(strChemin As String) As Boolean
'Hyper important d'utiliser ce problème de On Error GoTo pour déterminer le type d'erreur
'et d'avoir directement le problème en MsgBox
On Error GoTo err
Dim oFSO As Scripting.FileSystemObject
Dim oFld As Scripting.Folder
Dim oDrv As Scripting.Drive
Dim strDossiers() As String
Dim i As Integer
 
'Instanciation du FSO
Set oFSO = New Scripting.FileSystemObject
 
'Accède au disque
Set oDrv = oFSO.Drives(oFSO.GetDriveName(strChemin))
'Instancie le dossier racine
Set oFld = oDrv.RootFolder
'Découpe le chemin en dossier
strDossiers = Split(strChemin, "\")
'Tente d'accéder à chaque sous dossier
For i = 1 To UBound(strDossiers) - 1
    Set oFld = oFld.SubFolders(strDossiers(i))
Next i
TestChemin = True
fin:
 
    Exit Function
 
err:
    Select Case err.Number
        Case 5: MsgBox "Le disque n'existe pas"
        Case 76: MsgBox "Impossible de trouver le dossier : " & strDossiers(i)
        Case Else: MsgBox "Erreur inconnue"
    End Select
    Resume fin
End Function
Merci pour vos feedback