Bonjour à tous et à toutes !
Je me tourne vers vous car j'ai un problème, je vous explique mon fichier excel :
J'ai crée un fichier excel de gestion de stocks, et pour gérer tous les stocks de réactifs, je dois aller chercher des informations dans chaque fiches individuelles de réactifs. Pour cela j'ouvre les fichiers grâce à un code vba, je prends les infos et le referme.
Le problème étant que les fichiers portent le même nom, j'aimerais donc mettre une sécurité avant de commencer la manip qui permettrait de vérifier si un fichier de ce nom est ouvert, et si oui le fermer dans tout les cas.
J'ai trouvé il y a quelque temps une fonction qui permet de vérifier si un fichier est ouvert, la voici :
Je l'utilise donc pour ouvrir mon fichier ou je dois extraire les informations. Pour la sécurité j'ai écris ce code qui ne marche pas :
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 Function IsFileOpen(Filename As String) Dim filenum As Integer, 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 IsFileOpen = False Case 70 IsFileOpen = True End Select End Function
Le code "Sécurité" ne ferme pas le fichier déjà ouvert.. Je ne comprends pas pourquoi car sans ce code, la deuxième partie fonctionne, ouvre le fichier désiré et la referme après.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'Sécurité If IsFileOpen("M:\Fiche de vie et de renseignement test.xlsm") Then Workbooks("M:\Fiche de vie et de renseignement test.xlsm").Close End If 'Ouverture du fichier, c'est ici que nous cherchons le fichier voulu avec un lien précis. If IsFileOpen("M:...\Fiche de vie et de renseignement test.xlsm") Then GoTo TrouveeNom_1 Else Workbooks.Open Filename:= _ "M:...\Fiche de vie et de renseignement test.xlsm" GoTo TrouveeNom_1 End If
Merci d'avance de votre aide
Edit : Je pense que le problème vient du code utilisé pour la sécurité, j'ai l'impression que le code ne détecte pas mon fichier ouvert, et continue le code comme si il ne lisait pas ces 3 lignes
Partager