Dans ma Sub, la syntaxe Optional B As Boolean, passe juste un paramètre de type Boolean (variable nommée B) optionnel à ma Sub. On aurait tout aussi bien pu passer Optional I As Integer.
Le fait d'ajouter un paramètre à une Sub, la rend invisible, car, pour "l'appeler", il faudrait lui transmettre une éventuelle valeur...
Exemples :
Sub avec paramètre NON OPTIONNEL :
Sub MaMacro1(Nom As String)
MsgBox "Salut " & Nom
End Sub
'Macro que l'on appelle ainsi :
'Call MaMacro1("DUPOND")
Maintenant, le fait d'ajouter Optional, rend le caractère de présence de la variable optionnelle.
Exemple :
Sub MaMacro2(Optional Nombre As Long)
MsgBox "Salut aux " & Nombre & " adhérents"
End Sub
'Macro que l'on appelle ainsi :
'Call MaMacro2()
' ou :
'Call MaMacro2(18)