Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

bug file not found

1 réponse
Avatar
John Smith
Bonjour,

J'ai une sub qui ouvre excel et je recois une erreur un peu bizarre de la
sub openfichierexcel
Decription File not foundChemin du fichier Z:\OriFtravail.xlsLigne erreur
140 Valeur fichierestla :True -> m'indique que le fichier existe avec la
function IsFileExist
Et si l'utilisateur refait l'opération 2 secondes apres tout fonctionne!!!!
Quelqu'un a un idée?

Le fichier est sur un ordi réseau et plusieurs personnes peuvent l'ouvrir
c'Est pour ca que j'attend que le fichier soit fermé pour avoir les
dernières info du fichier

Sub openfichierexcel(chemin As String, file As Excel.Workbook, visible As
Boolean, alerte As Boolean, Optional State As Xlstate)
10 On Error GoTo Err_Proc
Dim fichierestla As Boolean
20 If objExcel Is Nothing Then
30 Set objExcel = New Excel.Application
40 End If
50 If State = 0 Then
60 objExcel.WindowState = xlMaximized
70 Else
80 objExcel.WindowState = State
90 End If
100 objExcel.visible = visible
110 objExcel.DisplayAlerts = alerte


120 fichierestla = IsFileExist(chemin)
130 DoEvents

'check si le fichier est déja ouvert
140 Do Until IsFileOpen(chemin) = False
150 Sleep 100
160 DoEvents
170 IsFileOpen chemin
180 Loop

190 Set file = objExcel.Workbooks.Open(chemin)

Exit_Proc:
200 Exit Sub
Err_Proc:
210 Err_Handler "Module3", "openfichierexcel", Err.Description & " " &
Err.Number & " " & chemin & " " & Erl & " " & fichierestla
220 Resume Exit_Proc
End Sub


Function IsFileOpen(Filename As String)


On Error GoTo Err_Proc
Dim filenum As Integer, errnum As Integer

On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open Filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.

' Check to see which error occurred.
Select Case errnum

' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False

' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True

' Another error occurred.
Case Else
Error errnum
End Select

Exit_Proc:
Exit Function


Err_Proc:
Err_Handler "Module3", "IsFileOpen", Err.Description & " " & Err.Number
Resume Exit_Proc


End Function
Public Function IsFileExist(ByVal strFileName As String) As Boolean


On Error GoTo Err_Proc

' Determines if a file exists
Dim fs As Object


If InStr(strFileName, "*") = 0 And InStr(strFileName, "?") = 0 Then
Set fs = CreateObject("Scripting.FileSystemObject")
IsFileExist = fs.FileExists(strFileName)
Set fs = Nothing
Else
IsFileExist = Not (Dir(strFileName) = "")
End If

Exit_Proc:
Exit Function


Err_Proc:
Err_Handler "Module3", "IsFileExist", Err.Description & " " & Err.Number
Resume Exit_Proc


End Function

1 réponse

Avatar
John Smith
Quand tu fais ce code pour fermer et saver un fichier le fichier est effacer
pendant 1 milliseconde.
objWorkbook.Close True

et quant tu fais
objWorkbook.save
objWorkbook.Close



"John Smith" wrote in message
news:
Bonjour,

J'ai une sub qui ouvre excel et je recois une erreur un peu bizarre de la
sub openfichierexcel
Decription File not foundChemin du fichier Z:OriFtravail.xlsLigne erreur
140 Valeur fichierestla :True -> m'indique que le fichier existe avec la
function IsFileExist
Et si l'utilisateur refait l'opération 2 secondes apres tout
fonctionne!!!! Quelqu'un a un idée?

Le fichier est sur un ordi réseau et plusieurs personnes peuvent l'ouvrir
c'Est pour ca que j'attend que le fichier soit fermé pour avoir les
dernières info du fichier

Sub openfichierexcel(chemin As String, file As Excel.Workbook, visible As
Boolean, alerte As Boolean, Optional State As Xlstate)
10 On Error GoTo Err_Proc
Dim fichierestla As Boolean
20 If objExcel Is Nothing Then
30 Set objExcel = New Excel.Application
40 End If
50 If State = 0 Then
60 objExcel.WindowState = xlMaximized
70 Else
80 objExcel.WindowState = State
90 End If
100 objExcel.visible = visible
110 objExcel.DisplayAlerts = alerte


120 fichierestla = IsFileExist(chemin)
130 DoEvents

'check si le fichier est déja ouvert
140 Do Until IsFileOpen(chemin) = False
150 Sleep 100
160 DoEvents
170 IsFileOpen chemin
180 Loop

190 Set file = objExcel.Workbooks.Open(chemin)

Exit_Proc:
200 Exit Sub
Err_Proc:
210 Err_Handler "Module3", "openfichierexcel", Err.Description & " " &
Err.Number & " " & chemin & " " & Erl & " " & fichierestla
220 Resume Exit_Proc
End Sub


Function IsFileOpen(Filename As String)


On Error GoTo Err_Proc
Dim filenum As Integer, errnum As Integer

On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open Filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.

' Check to see which error occurred.
Select Case errnum

' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False

' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True

' Another error occurred.
Case Else
Error errnum
End Select

Exit_Proc:
Exit Function


Err_Proc:
Err_Handler "Module3", "IsFileOpen", Err.Description & " " & Err.Number
Resume Exit_Proc


End Function
Public Function IsFileExist(ByVal strFileName As String) As Boolean


On Error GoTo Err_Proc

' Determines if a file exists
Dim fs As Object


If InStr(strFileName, "*") = 0 And InStr(strFileName, "?") = 0 Then
Set fs = CreateObject("Scripting.FileSystemObject")
IsFileExist = fs.FileExists(strFileName)
Set fs = Nothing
Else
IsFileExist = Not (Dir(strFileName) = "")
End If

Exit_Proc:
Exit Function


Err_Proc:
Err_Handler "Module3", "IsFileExist", Err.Description & " " &
Err.Number
Resume Exit_Proc


End Function