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