Bonjour,

J'ai un programme qui tourne correctement, lorsque que le programme a fini sa tache principal je sauvegarde dans un .log les données suivantes

ludo 21/07/2010 14:48:52 Nombre de ligne traité 500 Version 1.1 
Si mon user n'a pas accès au serveur je le sauvegarde dans un fichier en local jusqu'à ce qu'elle est la connexion dans ce cas je vide le fichier local dans le fichier log sur le serveur.
Je sais pas si je me suis bien fait compris

Dans cette fonction que je vous présente ci-après de manière aléatoire j'ai une erreur 75, chemin du fichier incorrecte. Bon ok l'erreur est explicite sauf que j'ai vérifié tous les chemins et le plus troublant a mon sens est que j'ai baliser ma fonction d'un On error goto, afin que le user ne soit pas dérangé par les erreurs, surtout que le traceur n'est pas primordiale au fonctionnement de l'application.
Quand je dis aléatoire cela veut dire que sur la meme machine l'erreur arrive 1 fois sur 5.

Voici la fonction complete :

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
'Option Explicit
 
 
 
 
Public Sub trackeur()     ' fonction permettant de faire le fichier .log
 
Dim NbLigneTaille As Double
 
NbLigneTaille = FormPP.txtligne
 
 
On Error GoTo glo
 
        Dim util As String            ' recup le nom user
        Dim nbli As String
        Dim rec As track
        Dim rec1 As track1
 
 
       ' Charger fichier et mettre à jour le fichier log
 
        Adressecompt = "\\Serveur2\Exploitation\Applications\Config-log\[FL]Automate_listing.log"
        On Error GoTo back
        If Dir(Adressecompt, vbNormal) = "" Then          'c'est que le fichier n'existe pas
back:
 
      ' Test sur les lettres des disque dur si pas D: ou pas de C: on n'enregistre pas.
            If Dir("C:\Program Files\Automate_Listing", vbDirectory) <> "" Then
                AdresseComptLocal = "C:\Program Files\Automate_listing\[FL]cache_automate_listing.log"  ' si sur C:
            ElseIf Dir("D:\Program Files\Automate_Listing", vbDirectory) <> "" Then
                AdresseComptLocal = "D:\Program Files\Automate_listing\[FL]cache_automate_listing.log" ' si sur D:
            Else
                Exit Sub
            End If
'
 
 
 
            If Dir(AdresseComptLocal, vbNormal) = "" Then
                   Set FSys = CreateObject("Scripting.FileSystemObject")
                   Set MonFic = FSys.CreateTextFile(AdresseComptLocal)
            End If
 
            util = Environ("USERNAME")
            nbli = "Nombre de ligne traité " & NbLigneTaille
            intfic = FreeFile
            Open AdresseComptLocal For Random As intfic Len = Len(rec)
            'Fixe les informations du client
                With rec
                    .user = util
                    .dt = Date
                    .heure = Time
                    .nbligne = nbli
                    .version = FormPP.lblver
                    .paramsaut = vbCrLf
                End With
 
                'Compte le nombre d'enregistrements
                intNum = LOF(intfic) / Len(rec)
                'Ajoute la donnée
                Put intfic, intNum + 1, rec
                'intNum + 1, rec
            Close intfic
 
    'fin fichier LOG
 
       Else
 
            If Dir(Adressecompt, vbNormal) <> "" Then
 
                Dim ligne
 
 
 
                If Dir("C:\Program Files\Automate_Listing", vbDirectory) <> "" Then
                    AdresseComptLocal = "C:\Program Files\Automate_listing\[FL]cache_automate_listing.log"  ' si sur C:
                ElseIf Dir("D:\Program Files\Automate_Listing", vbDirectory) <> "" Then
                    AdresseComptLocal = "D:\Program Files\Automate_listing\[FL]cache_automate_listing.log" ' si sur D:
                End If
 
                If Dir(AdresseComptLocal, vbNormal) <> "" Then
 
                        intfic = FreeFile()
                        Open AdresseComptLocal For Input As intfic     '
                            intfic1 = FreeFile()
                            Open Adressecompt For Random As intfic1 Len = Len(rec1)
 
                                While Not EOF(intfic)
 
                                    Input #intfic, ligne
                                    With rec1
                                        .lignerecup = ligne
                                        .paramsaut = vbCrLf
                                    End With
 
                                    'Compte le nombre d'enregistrements
                                    intNum = LOF(intfic1) / Len(rec1)
                                    'Ajoute la donnée
                                    Put intfic1, intNum + 1, rec1
                                    'intNum + 1, rec
                                Wend
 
                            Close intfic1
                        Close intfic
 
                        Kill AdresseComptLocal   ' si sur C:.
                    End If 'fin du if de test de fichier
 
 
                util = Environ("USERNAME")
                    nbli = "Nombre de ligne traité " & NbLigneTaille
                    intfic = FreeFile
                    Open Adressecompt For Random As intfic Len = Len(rec)
                    'Fixe les informations du client
                        With rec
                            .user = util
                            .dt = Date
                            .heure = Time
                            .nbligne = nbli
                            .version = FormPP.lblver
                            .paramsaut = vbCrLf
                        End With
 
                        'Compte le nombre d'enregistrements
                        intNum = LOF(intfic) / Len(rec)
                        'Ajoute la donnée
                        Put intfic, intNum + 1, rec
                        'intNum + 1, rec
                    Close intfic
            End If ' fin du if test de fichier sur serveur
        End If
    'fin fichier LOG
 
 
glo:
End Sub
L'erreur apparait sur la ligne suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 Put intfic, intNum + 1, rec
Donc erreur 75, le chemin est incorrect ou introuvable.


Merci de votre aide et n'hésitez pas a critiquer mon code de façon que je m'améliore