Comment déclarer un tableau global dans un formulaire?
J'ai besoin que le tableau soit rempli dans une procédure et lu dans une autre procédure.
Avec le code actuel à la ligne 1 de FillArray_1
Dim array1() As String ' Array Private Sub Exe_btn_Click() PrintArray End Sub Public Sub FillArray_1() array1 = Array( _ "member_1", _ "member_2", _ "member_3") End Sub Public Sub PrintArray() FillArray_1 Dim i As Integer For i = LBound(array1) To UBound(array1) Debug.Print array1(i) Next i End Sub
J'obtiens un message d'erreur:
Expected variable or procedure, not project
Code:
array1 = Array( ...
3 Réponses :
Not Dim mais Public:
Public array1() As String
et il ne peut pas être localisé dans le module du formulaire Déplacez-le dans un module de code.
Oui. Il doit être accessible tout le temps, alors déplacez-le vers un module de code.
Et pour remplir array1
avec la fonction Array ()
, vous devez le déclarer comme Variant
.
Public array1 As Variant
ou
Dim array1 As Variant
si ces fonctions sont dans des modules différents.
Comme l'indique le message d'erreur, Array
est le nom de votre projet! Renommez le projet ou vous devez utiliser VBA.Array
pour éviter ce conflit:
Public Sub FillArray_1() array1 = VBA.Array( _ "member_1", _ "member_2", _ "member_3") End Sub
Très belle prise!
L'utilisation de variables entières ne présente généralement aucun avantage