Bonsoir à tous
Je vous soumets un problème que je n’arrive pas à résoudre et pour lequel je souhaite vivement votre aide. Il s’agit d’une procédure de contrôle d’ouverture d’un classeur Excel.
Merci d’avance à tous ceux ou à toutes celles qui pourront m’aider .
J'utilise Excel XP (2002) et je suis un utilisateur d'Excel à un niveau moyen.
Rachid .
“Param” est une procédure appelée à partir d’un menu déroulant créé à l’ouverture d’Excel .
Cette procédure et cette fonction ont été programmées pour contrôler l’ouverture d’un classeur nommé « Paramètres ». Normalement si le classeur « Paramètres » est déjà ouvert ;la procédure « Param » doit empêcher qu’ Excel l’ouvre à nouveau avec un message Box d’information en plus.
Quand je lance à partir du Menu la procédure « Param » ;Excel ignore la procédure Function et exécute les instructions situées après la fonction c'est-à-dire en ouvrant à chaque appel du menu, le classeur « Paramètres » sans pouvoir contrôler si ce classeur est déjà ouvert.
Le code source de mon essai est détaillé ci-dessous.
Sub Param()
Application.ScreenUpdating = False
Dim Classeur As Workbook
Dim Message As String
On Error Resume Next
If Err.Number <> 0 Then Err.Clear
If Not FileIsOpen(Classeur) Then
Workbooks.Open Filename:="C:\Mes Documents Excel\Paramètres.xls"
Else
ChDir "C:\ Mes Documents Excel\Paramètres.xls"
Windows("Paramètres").Activate
MsgBox "Le Classeur (Paramètres ) est déjà Ouvert !!! ", vbInformation
Exit Sub
End If
End Sub
Private Function FileIsOpen(ByVal Classeur As String) As Boolean
' Doit retourner True si le Classeur (Paramètres) est ouvert
Dim y As Workbook
On Error Resume Next
Set y = Workbooks("Paramètres")
If Err = 0 Then FileIsOpen = True
Else
FileIsOpen = False
End Function