Difficultés fonctions vérification existance document
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:
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:
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 :) ;)