Bonjour,
Aujourd'hui, je me confronte à un problème à première vue assez basique mais dont je ne trouve pas la solution, le voici :
J'ai pour objectif de créer une fonction permettant de récupérer un nombre important d'informations sur l'une des machines de mon entreprise et de les inscrire dans un fichier excel.
Le cheminement que j'effectue est le suivant :
-Je récupère les informations de la machine dans des variables
-Je lance la création du fichier excel
-Je remplis ce fichier avec les informations récupérées dans mes variables
-Je l'affiche à l'utilisateur puis le sauvegarde automatiquement à un emplacement fixe et avec un nom fixe.
Cependant, j'aimerai vérifier que le fichier créé plus tôt ne soit pas encore ouvert si l'on ré exécute la fonction, chose logiquement assez simple :
Mais je tombe sur une erreur qui me dit que l'indice est en dehors de la plage lors du workbooks.close alors que je suis sûr que le chemin indiqué est correct !
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 Private Sub donnee() If EstClasseurOuvert(App.Path & "\XXX\XXX.xlsx") Then Workbooks(App.Path & "\XXX\XXX.xlsx").Close End If end Sub Public Function EstClasseurOuvert(MonClasseur As String) Dim NumeroFichier As Long Dim NumeroErreur As Long On Error Resume Next NumeroFichier = FreeFile() Open MonClasseur For Input Lock Read As #NumeroFichier Close NumeroFichier NumeroErreur = Err On Error GoTo 0 Select Case NumeroErreur Case 0: EstClasseurOuvert = False Case 70: EstClasseurOuvert = True Case Else: Error NumeroErreur End Select End Function
Si quelqu'un a une idée d'où peut venir le problème, merci d'avance.
Partager