Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Passer un tableau a un sub

2 réponses
Avatar
Raymond Fournier
Bonjour a tous,

Je voudrais passer dans une procèdure, un tableau pour le mettre en
ordre alphabétique. La procèdure resemble a ca:

Sub Procedure(ByVal Nb_Element As Long, Tableau() As Variant)

dim tabCategorie() as String

et je l'appelle :
Procèdure i, tabCategorie() Mais j'ai une erreur:

Erreu de compilation
Incompatibilité de type:tableau ou type défini par l'utillisateur
attendu

Merci de votre aide
Raymond Fournier

2 réponses

Avatar
Bismark Prods
D'abord pourquoi ne pas passer un tableau de variant puisque tu déclare
ainsi dans ta sub ?

Ensuite, essaye de passer en paramètre le premier élément du tableau ...
parfois c'est nécessaire si tu joue sur les zones mémoires.


"Raymond Fournier" a écrit dans le message de
news:
Bonjour a tous,

Je voudrais passer dans une procèdure, un tableau pour le mettre en
ordre alphabétique. La procèdure resemble a ca:

Sub Procedure(ByVal Nb_Element As Long, Tableau() As Variant)

dim tabCategorie() as String

et je l'appelle :
Procèdure i, tabCategorie() Mais j'ai une erreur:

Erreu de compilation
Incompatibilité de type:tableau ou type défini par l'utillisateur
attendu

Merci de votre aide
Raymond Fournier


Avatar
Guy Detienne
Salut ;O)

Voici tiré tout droit de l'aide d'Access 97...

--------------------------------------------------------------
Un tableau de paramètres peut être utilisé pour passer un tableau
d'arguments à une procédure. Il n'est pas nécessaire de connaître le nombre
d'éléments du tableau lors de la définition de la procédure.
Vous utilisez le mot clé ParamArray pour déclarer un tableau de paramètres.
Le tableau doit être déclaré comme un tableau de type Variant, et il doit
être le dernier argument de la définition de la procédure.

L'exemple suivant illustre la définition d'une procédure comportant un
tableau de paramètres.

Sub AnyNumberArgs(strName As String, _
ParamArray intScores() As Variant)
Dim intI As Integer

Debug.Print strName; " Résultats"
' Utilise la fonction UBound pour déterminer
' la limite supérieure du tableau.
For intI = 0 To UBound(intScores())
Debug.Print " "; intScores(intI)
Next intI
End Sub

Les exemples suivants indiquent comment appeler cette procédure.

AnyNumberArgs "Jamie", 10, 26, 32, 15, 22, 24, 16
AnyNumberArgs "Kelly", "Haut", "Bas", "Moyen", "Haut"
------------------------------------------------------------------

Bonne prog'

Guy DETIENNE
--
___________________________________
Tchao.net: L'informatique à votre dimension
http://www.tchao.net
Veuillez répondre dans le newsgroup afin d'en faire bénéficier tout le
monde.
Please reply only to the newsgroup so that others can benefit.
___________________________________
Visual Basic & Microsoft Access
http://www.vbfrance.com
http://www.mvps.org/access
http://www.mvps.org/vbnet
___________________________________




"Raymond Fournier" a écrit dans le message de
news:
Bonjour a tous,

Je voudrais passer dans une procèdure, un tableau pour le mettre en
ordre alphabétique. La procèdure resemble a ca:

Sub Procedure(ByVal Nb_Element As Long, Tableau() As Variant)

dim tabCategorie() as String

et je l'appelle :
Procèdure i, tabCategorie() Mais j'ai une erreur:

Erreu de compilation
Incompatibilité de type:tableau ou type défini par l'utillisateur
attendu

Merci de votre aide
Raymond Fournier