Sub ProcedureAppelante()
Dim A As Range
Cells(1, 1) = 123
Set A = Cells(1, 1)
' A est un objet
Debug.Print TypeName(A)
' (A) est le résultat de l'évaluation de A
Debug.Print TypeName((A))
ProcedureAppelee (A) 'Ce n'est pas A qui est transmis mais l'évaluation de A
Debug.Print A
ProcedureAppelee A ' A est transmis et revient modifié
Debug.Print A
End Sub
Function ProcedureAppelee(ByRef x)
x = 321
End Function