Bonjour à tous,
Le code suivant est tiré d'un livre( VBA pour A2000 ed WROX) pour expliquer la portée des variables locales mais ma question porte sur l'appel des procédures. Il est mis dans un module
Puis on tape dans la fenêtre Exécution
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 Option Explicit Public Sub Procédure1() Dim intVariable1 As Integer Dim intVariable2 As Integer intVariable1 = 1 intVariable2 = 2 Debug.Print intVariable1 Debug.Print intVariable2 End Sub Private Sub Procédure2() Dim intVariable1 As Integer intVariable1 = 100 Debug.Print intVariable1 End Sub Private Sub TestLocal() Procédure1 Procédure2 Procédure1 End Sub
pour obtenir 1 2 100 1 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part TestLocal
1)Ma question ne portent pas sur la portée des variables mais sur le fait que ce code ne marche que si on remplace Private Sub TestLocal() par Public Sub TestLocal() sinon on obtient le message "Erreur de compilation Procedure Sub ou function non définie "alors qu'à la compilation aucun message d'erreur n'est apparu. Est ce qu'il y a une explication.
2) D'autre part si on tape dans la fenêtre execution Procédure1 elle va fonctionner alors que si on tape Procédure2 on a le même message d'erreur que précédemment.De même si on remplace Private Procédure2 par Public , l'appel fonctionne.
3)Dernière Question Si on tape , dans la fenêtre execution, Procédure1() avec les parenthèses on obtient une "erreur de compilation Attendu:=" or normalement cet appel est licite.
Si qq'un pouvait m'éclairer d'où viennent les erreurs de compilation, je lui en serait gré
Merci de m'avoir consacré de votre temps
Ps j'ai testé sous access2013 vb6 excel 2010 , le résultat est le m^me
Partager