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 :
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
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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Open Fichier For Input Lock Read As #x
Quelqu'un a-t-il une idée?
Merci de vos réponses
Beralienne
Partager