bonjour,
dans mon code j'ai une boucle et dans cette boucle j'ouvre une fichier, mais pour ne pas l'ouvrir 5600000 fois je veux faire une vérification d'ouverture avant.
par exemple, dans le premier passage de la boucle, si le fichier n'est aps ouvert, on l'ouvre, dans les passage suivant, s'il est ouvert alors on passe a la suite.
Dans les FAQ j'ai trouvé ceci :

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
Sub Test()
    If VerifOuvertureClasseur("C:\Dossier\nom classeur.xls") Then
        MsgBox "Classeur déja ouvert."
    Else
        MsgBox "Classeur fermé."
    End If
End Sub
 
 
Function VerifOuvertureClasseur(Fichier As String) As Boolean
    Dim x As Integer
 
    On Error Resume Next
    x = FreeFile()
 
    Open Fichier For Input Lock Read As #x
    Close x
 
    If Err.Number = 0 Then VerifOuvertureClasseur = False
    If Err.Number = 70 Then VerifOuvertureClasseur = True
 
    On Error GoTo 0
End Function
je l'ai testé à part avec un fichier à moi pour voir comment ça marchait. Si le fichier n'est pas ouvert, c'est impeccable ça affiche le bon message. Mais si le fichier est déjà ouvert, j'obtiens un super message d'erreur me disant : "Erreur d'éxecution '70' : Permission refusé. " et ce message apparait sur la ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Open Fichier For Input Lock Read As #x
Pour info mon fichier se trouve sur un serveur, et mon fichier où se trouve la macro est en local sur mon pc. Le réseau est bien branché et tout et tout. Je travail sur XP avec Excel 2003 basic.

Quelqu'un a-t-il une idée?
Merci de vos réponses
Beralienne