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 :-)
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
Ma question:

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