Bonjour le forum,
Je cherche à savoir si le classeur Excel que j'utilise pour ma macro est déjà ouvert? Si il est déjà ouvert alors je met un MsgBox et je quitte le programme.
Comme je ne voyais pas comment faire (car il me semble qu'une fonction du style IsOpen n'existe pas), j'ai donc chercher sur le forum et j'ai trouvé le code ci-dessous, qui me semble interessant :
Malheureusement ce code ne fonctionne pas. J'explique!
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 sub test() Dim chemin As String Dim cheminExcel As String chemin = "C:\Mesdocuments\" cheminExcel = chemin & "numeroTicket.xls" If FichierEstOuvert(chemin & cheminExcel) = True Then vbresult = MsgBox("Un ticket est déjà en cours de distribution, reessayez dans quelques instants !!!", vbCritical) GoTo fin End If (...) fin: end sub Function FichierEstOuvert(ByRef FichierTeste As String) As Boolean Dim Fichier As Long On Error GoTo Erreur Fichier = FreeFile Open FichierTeste For Input Lock Read As #Fichier Close #Fichier FichierEstOuvert = False Exit Function Erreur: FichierEstOuvert = True End Function
Selon ce que je mets dans ma condition IF (True ou False). Avec True il me dit tout le temps que le fichier est déjà ouvert (même qand il ne l'est pas), avec false il me dit tout le temps que le fichier est fermé même lorsque je l'ai déjà ouvert.
quelqu'un aurait il une idée pour résoudre ce problème?
Merci d'avance !
Partager