Bonjour
Dans un code de vba, je souhaite faire ouvrir le fichier par l'utilisateur si et seulement si celui-ci n'est pas déjà ouvert.
Je commence tout juste à utiliser On Error dans mes macros.
Voici ce que je souhaite gérer comme erreur :
1/ si le fichier est ouvert : tu ne fais rien
2/ si le fichier n'est pas ouvert, tu tentes de l'ouvrir
2a/ si le peux l'ouvrir : ouvre
2B/ si tu ne le trouves pas ou qu'il n'est pas bien nommer : tu quittes la macro
voici le code que j'ai actuellement réalisé. le ic, si mon fichier est déjà ouvert le message d'erreur me disant qu'il est introuvable continue d'apparaître... et cela ne poursuis pas ma macro après... buuuug ! :p
ha oui, et je passe par un userform car je propose l'ouverture de plusieurs fichiers en même temps !
bien entendu, on connais d'avance le chemin et le nom du fichier qu'il faut ouvrir.
merci de votre aide !
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
32
33
34
35
36
37
38
39
40
41
42
43
44 Private Sub btnOK_Click() Dim cheminBEbud, fichierBEbud, ouvreBEbud As String 'pour fichier 1 Dim cheminBEsupport, fichierBEsupport, ouvreBEsupport As String 'pour fichier 2 Dim cheminTDB, fichierTDB, ouvreTDB As String 'pour fichier 3 Dim estouvert As Boolean estouvert = False 'pour fichier 1 If Box_BE_bud.Value = True Then ouvertureBEbud: ThisWorkbook.Activate Sheets("Commandes").Select cheminBEbud = Range("D6").Value fichierBEbud = Range("B6").Value & ".xlsm" ouvreBEbud = cheminBEbud & "\" & fichierBEbud On Error GoTo ouvre Workbooks(fichierBEbud).Activate On Error GoTo 0 estouvert = True MsgBox "Le fichier est déjà ouvert !", vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER" ouvre: If estouvert = False Then ChDir cheminBEbud On Error GoTo erreur Workbooks.Open Filename:=ouvreBEbud erreur: MsgBox "Le fichier " & fichierBEbud & " est introuvable ou n'existe pas !" & Chr(10) _ & "Veuillez vérifier l'existence du fichier, son nom et son chemin d'accès dans la feuille Commandes." _ , vbOKOnly + vbCritical, "ERREUR OUVERTURE FICHIER" GoTo fermeture End If End If ' ce code est identique pour chaque bouton de mon UF. (j'ai 4 boutons) fermeture: ThisWorkbook.Activate Unload Me UserForm3_ouverture_file.Hide End Sub
Partager