Redimensionnement dans une procédure appelée, d'un tableau multidimenssion passé

Résolu
cs_rlapt
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013
- 2 déc. 2010 à 19:26
cs_rlapt
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013
- 4 déc. 2010 à 13:09
Bonjour,

Je démarre en Visual Basic Express et je rencontre une difficulté :

Je cherche à passer une variable tableau multidimensionnel par référence à une procédure et de redimensionner ce tableau dans la procédure.

En Vba c'est assez facile :
il suffit de déclarer le tableau dans une procédure --> dim tableau() as variant
de passer la variable à la procédure --> MaProcédure (byref tableau())
de redimensionner le tableau dans la procédure appelée --> ReDdim tableau(10,20)
au retour de la procédure appelée le tableau à bien les dimensions 10 et 20 et est rempli avecles valeurs traitées par la procédure appelée.

Merci de me donner une idée pour recréer cette fonction

RLAPT

4 réponses

NHenry
Messages postés
14973
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 août 2022
161
2 déc. 2010 à 20:25
Bonjour,

En VB.NET, il faut préciser le nombre de dimension, exemple :
Dim Tab() as string '1 dim
Dim Tab(,) as string '2 dim
Dim Tab(,,) as string '3 dim

Ensuite, tu peux utiliser Redim à condition de passer le tableau en ByRef.

Essayes, où dis-nous ce qui bloque.

Mon site
3
cs_rlapt
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013

3 déc. 2010 à 09:48
Bonjour,

Merci de votre aide.

C'est un peu mieux avec vos remarques, mais je n'arrive toujours pas à passer la variable tableau dans la procédure appelée.
Voici mon problème :
Procédure appelante :
Sub MonEssai()
Dim Données(,) As string, TexteRequête As String

ReDim Données(1, 1)
RécupDonnéesRequête(Données(, ))
End Sub

Procédure appelée :
Sub RécupDonnéesRequête(ByRef NomVariableSortie(,) As string)

Deux erreurs apparaissent sur l'argument Données(, ) de la procédure appelante "expression d'indice manquante". L'une avant la virgule et l'autre après.

Pouvez-vous m'aider ?
y a t'il une différence si l'on redimensionne ou non le tableau "Données" dans la procédure appelante ?

Merci d'avance
RLAPT
0
NHenry
Messages postés
14973
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 août 2022
161
4 déc. 2010 à 00:57
Bonjour,

Voici le code de test que j'ai fais et qui fonctionne :
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ltData(,) As String
        ReDim ltData(2, 1)
        Traite(ltData)
    End Sub

    Private Sub Traite(ByRef ptData As String(,))
        ReDim ptData(5, 6)
    End Sub


Mon site
0
cs_rlapt
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013

4 déc. 2010 à 13:09
Bonjour,

Merci de votre aide effectivement le code proposé fonctionne correctemment.

Il me reste encore quelques heures de lecture avant d'être autonome.

Merci encore.

RLAPT
0