Bonjour à tous,
Je viens de découvrir l'instruction End (lol)
Avant, si je devais quitter une procédure (pour une info manquante comme par exemple une colonne dans une extraction),
après un msgbox, je mettais un boolean à true, quittais ma procédure (Exit Sub) et quand je revenais sur la procédure d'origine, je testais le booléen.
Si celui-ci était True, alors je libérais mes variable (Set MyObject = Nothing) puis quittais la procédure (Exit Sub).
Avec End, pas besoin de mon boolean, il met fin directement au code et ne revient pas à la procédure précédente :-)
Ma question:
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 Sub OpenFile(NameFile As String) '---- Process If Found = False Then 'Si le classeur n'est pas ouvert If Len(Dir(sPath & sFileName)) > 0 Then 'si le classeur existe Workbooks.Open sPath & sFileName 'on l'ouvre Else MsgBox ("The excel file '" & NameFile & "' doesn't exist on the current folder.") End 'On stoppe le code ET ne revient pas ds la précédente Sub :-) End If Else Workbooks(NameFile).Activate 'on active le classeur s'il était déjà ouvert End If Set Export = ActiveWorkbook End Sub
j'ai lu qu'il n'était pas nécessaire de libérer les variables (Set MyObject = Nothing) car le end s'en chargeait.
J'aimerai avoir une confirmation sur ce point svp.
Et si c'est vrai, est-ce également le cas pour l'instruction End Sub?
Merci par avance
Partager