Bonjour,
J'utilise une macro pour vérifier si un fichier est ouvert.
Si le fichier est déjà ouvert, j'affiche un message.
Si le fichier est fermé, je l'ouvre.
Cette macro fonctionne bien sous EXCEL 2003 à 2010, mais ne fonctionne plus sous 2013, comme si FUNCTION ne retournait pas de valeur.
Si le fichier est déjà ouvert, FICHOUVERT n'est pas considéré comme FALSE dans mon test et le fichier est donc ouvert une seconde fois.
Voici la macro, si quelqu'un peut m'aider :
Sub Exportation()
Rem On ouvre RECAP_EXPE.... si RECAP_EXPE est ouvert on arrête tout, sinon ...
If FichOuvert("D:\POIDS\RECAP_EXPE.xls") = False Then
Workbooks.Open filename:="D:\POIDS\RECAP_EXPE.xls"
Else
Rem RECAP_EXPE est ouvert, on ne fait rien
reponse = MsgBox("Attention le fichier RECAP_EXPE est ouvert !! Veuillez le fermer avant de lancer l'export", vbCritical, "ATTENTION RECAP_EXPE OUVERT")
End If
End Sub
'Rem permet de tester si un fichier est déjà ouvert
Function FichOuvert(filename As String) as boolean
Dim filenum As Integer
Dim errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
FichOuvert = False
Case 70
FichOuvert = True
Case Else
Error errnum
End Select
End Function
J'utilise une macro pour vérifier si un fichier est ouvert.
Si le fichier est déjà ouvert, j'affiche un message.
Si le fichier est fermé, je l'ouvre.
Cette macro fonctionne bien sous EXCEL 2003 à 2010, mais ne fonctionne plus sous 2013, comme si FUNCTION ne retournait pas de valeur.
Si le fichier est déjà ouvert, FICHOUVERT n'est pas considéré comme FALSE dans mon test et le fichier est donc ouvert une seconde fois.
Voici la macro, si quelqu'un peut m'aider :
Sub Exportation()
Rem On ouvre RECAP_EXPE.... si RECAP_EXPE est ouvert on arrête tout, sinon ...
If FichOuvert("D:\POIDS\RECAP_EXPE.xls") = False Then
Workbooks.Open filename:="D:\POIDS\RECAP_EXPE.xls"
Else
Rem RECAP_EXPE est ouvert, on ne fait rien
reponse = MsgBox("Attention le fichier RECAP_EXPE est ouvert !! Veuillez le fermer avant de lancer l'export", vbCritical, "ATTENTION RECAP_EXPE OUVERT")
End If
End Sub
'Rem permet de tester si un fichier est déjà ouvert
Function FichOuvert(filename As String) as boolean
Dim filenum As Integer
Dim errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
FichOuvert = False
Case 70
FichOuvert = True
Case Else
Error errnum
End Select
End Function
Dernière édition: