Comment faire passer un nom de variable à un module afin d'utiliser ensuite les [Résolu]

Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013
- - Dernière réponse : cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
- 16 juin 2005 à 19:33
J'aimerais mutualiser une fonction d'affichage dans une textbox pour plusieurs tableaux contenant du texte.

Du genre :

dim variable() as string

public affichage (varible as string)

for i=1to n
tetxbox.text= tetxbox.text+ variable(i)
next i

end sub

Sachant, que variable doit pouvoir correspondre à plusieurs tableaux.

Zifnig
http://zifnig.free.fr
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
3
Merci
Je ne vois pas où est le problème, nom_tableau sera le tableau que tu passeras.

Quand tu veux afficher tab1 --> affichage tab1
Quand tu veux afficher tab2 --> affichage tab2

etc...

Je te conseille quand même de vider la textbox avant si tu ne veux pas cumuler tout tes tableaux.

Sub Affichage(ByVal nom_tableau As Variant)
textbox.text=""
for i = 1 to 1000
textbox.text = textbox.text + nom_tableau(i)
'nom_tableau prenant les valeurs tab1, tab2 ou tab3
End Sub

Reste aussi la taille max d'une textbox, pourra-t-elle contenir tout ton tableau ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 190 internautes nous ont dit merci ce mois-ci

Messages postés
1018
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008
0
Merci
salut,
Ta procédure doit deja comprendre un "SUB"
Dans ta procédure, "Varible" correspond à quoi, et doit être intégré ou ?
Dans ta procédure, "n correspond à quoi, et comment la récupères tu ?
Dans tout ça, je ne vois qu'un seul tableau : dim variable() as string, ou sont les autres ?

Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
Salut,

Si tu prog en vb6, tu peux essayer ça :

Private Sub Form_Load()
Dim variable(1) As String
variable(1) = "coucou"
Affichage variable
End Sub


Sub Affichage(ByVal v As Variant)
MsgBox v(1)
End Sub


Le non-type variant n'est pas trop recommandé mais dans ce cas on ne peux faire autrement en vb6.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013
0
Merci
Je vois que je n'ai pas été assez clair :

mettons que je crée 3 tableaux : tab1(), tab2(), tab3() ayant cahacun 1000 enregistrements.

Je voudrais pouvoir, dans ma fonction affichage, afficher soit les enregistrements de tab1, de tab2 ou tab3 en passant comme paramètre le tableau à afficher, sans avoir à recopier 3 fois le même code (à la vaiable tabx près) conditionnés par des IF.


Sub Affichage(ByVal nom_tableau As Variant)
for i = 1 to 1000
textbox.text = textbox.text + nom_tableau(i)
'nom_tableau prenant les valeurs tab1, tab2 ou tab3
End Sub

Merci, déjà pour ces premières réponses.

Zifnig
http://zifnig.free.fr
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3
0
Merci
eh, il y a une erreur dans le passage de paramètre

dim variable() as string

public sub affichage (variable() as string)

for i=0 to ubound(variable)
tetxbox.text= tetxbox.text+ variable(i)
next i

end sub


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013
0
Merci
Non, c'est pas comme ça qu'il faut le voir, je voudrais quelque chose du genre :

Sub Affichage(ByVal nom_tableau As Variant)
for i = 1 to 1000
textbox.text = textbox.text + cstr(nom_tableau)(i)
'ceci donne une erreur de syntaxe, mais j'aimeais que cette ligne se transforme en textbox.text = textbox.text + tab1(i), car dans cet exemple nom_tableau serait égal à "tab1"
end sub

Aurait-on la possibilité de passer le pointeur du tableau choisi en variable? autre idée?

Zifnig
http://zifnig.free.fr
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012
0
Merci
Qui ce conçoit clairement s'ennonce aisement....Hum

c'est pas encore clair



Un tableau c'est quoi ?... un pointeur non ?

Donc tu as besoin en fait de connaître l'adresse et non le nom !!!



Déclarer

Dim Montab1() as integer revient à créer une structure d'entier dont l'adresse est le premier élément



Ecrire "Montab"&1 ne revient pas à ça

L'adresse de la chaine ne te donnera pas l'adresse de ton tableau Montab1... donc marche pas.



A toi de gérer l'alimentation de ton text box et en fonction des cas, de passer soit le tab1, soit le 2 ou le 3

A+
madbob
Messages postés
69
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
4 mars 2013
0
Merci
Merci canislupus, je ne pensait pas que cela était si simple...honte à moi!

Zifnig
http://zifnig.free.fr
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
Dragon, tu as raison si les tableaux passés en paramètre sont tous de type string, sinon, je crains que le variant soit inévitable.

Zfnig, je ne comprend toujours pas car nom_tableau représentera le tableau que tu passes en paramètre à Affichage.

Si tu codes ,dans un bouton par exemple :
Affichage tab1
nom_tableau de ta sub sera tab1.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3
0
Merci
le problème, c'est que si on envoi dans un textbox, seul le type string passe


bon oki, tu as aussi les chiffres, mais ils sont convertie en string

tu peux faire ceci par contre

dim variable() as string

public sub affichage (varible() as variant)

for i=0 to ubound(variable)
affichage2(variable(i))
next i

end sub

private sub affichage2(texte as string)
tetxbox.text= tetxbox.text & texte
end sub

private sub affichage2(texte as integer)
tetxbox.text= tetxbox.text & texte
end sub

private sub affichage2(texte as Nom)
tetxbox.text= tetxbox.text & texte.Prenom & " " & texte.Nom
end sub

...

ça permet de faire un certain traitement dépendant le type de variable disponible. Par contre c,est du .net, je sais pas si vb6.0 supporte la surcharge de classe aussi bien


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------