Déclaration de variable

Résolu
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007 - 7 févr. 2007 à 10:52
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007 - 7 févr. 2007 à 12:15
Bonjour,
Je désirais créer un tableau  en memoire, avec trois variables A B C type double
Mais la différence et que je puisse redimensionner ce tableau sans perdre les valeur déja enregistrées dans ce tableau
Je sais qu'il faut que j'utilise Redim, mais a part cela je ne vois pas comment ecrire
le tableau avec les trois variable

Merci d'avance
David

9 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 févr. 2007 à 11:28
Re,
Voici un petit exemple de tableau de Type.
Place ce code dans un Form et execute.

Option Explicit 

Private Type Ligne 
    Op1 As Double    'premier nombre
    Op2 As Double    'second nombre
    Res As Double    'Produit résulant de op1 * op2
End Type 

Private M_Tab() As Ligne 

Private Sub Form_Load() 
ReDim M_Tab(0)  'redimensionne le tableau

'Ajout de quelques element
Call AjoutElement(5, 25)  'tu auras juste a remplacer par les valeurs des textbox
Call AjoutElement(3, 15) 
Call AjoutElement(25, 10) 

'affichage de la somme des produit
MsgBox CalculSomme 
End Sub 

Private Sub AjoutElement(ByVal TmpOP1 As Double, ByVal TmpOP2 As Double) 
'Ajoute un element de type ligne dans le tableau
Dim TmpElem As Ligne 
TmpElem.Op1 =  TmpOP1 
TmpElem.Op2 = TmpOP2 
TmpElem.Res = TmpOP1 * TmpOP2 
'Ajoute l'element dans le tableau
M_Tab( UBound (M_Tab))  = TmpElem 
'redimensionne le tableau sans perdre le contenu
ReDim Preserve M_Tab(UBound(M_Tab) + 1) 
End Sub 

Private Function CalculSomme() As Double 
Dim i As Integer 
'Parcours tout le tableau pour ajoute les produits
For i =   LBound (M_Tab) To UBound(M_Tab) - 1 
'C'est ubound(M_Tab) - 1 car le dernier element ne contient jamais rien
    CalculSomme  = CalculSomme + M_Tab(i).Res 
Next 
End Function 

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 févr. 2007 à 11:01
Salut,
Il faut utiliser Preserve en plus de redim

Exemple:
Dim i As Integer 
Dim M_Variables() As Double 
ReDim M_Variables(2) 
For i = 0 To 2 
    M_Variables(i) = i + 1 
Next 
ReDim Preserve M_Variables(3) 
For i = 0 To 3 
    MsgBox M_Variables(i) 
Next 

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
7 févr. 2007 à 11:04
Un tableau dynamique fonctionne un peu comme ça...
Ce ne sont pas des variables à proprement parler, mais des valeurs

Dim Tablo() as double  ' aucune dimension pour pouvoir rajouter des éléments

Redim Tablo(2)   '3 éléments initialisés qui valent 0 par défaut (As Double)
Tablo(0) = Nombre1
Tablo(1) = Nombre2
Tablo(2) = Nombre3

Redim Preserve Tablo(UBound(Tablo) + 1)  ' Preserve pour conserver les donnéesTablo(3) Nombre4 ' ou Tablo(Ubound(Tablo)) Nombre4

Si ce sont vraiment des variables dont tu parles, il faudrait peut-être expliquer un peu plus ce que tu cherches à faire.

MPi
0
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007
7 févr. 2007 à 11:09
Merci jrivet,
Mais ce que je cherche c'est la variable composée,
c'est a dire la viriable Tableau contient la viarable A, B, C en ligne
et apartir de la je rajoute des ligne au tableau.
Je ne sais pas si je suis assé clair, as facile de s'expliquer

Ou alors je fais fausse route en me servant de variable, je devrais utiliser un tableau,
alors , c'est encore plus la galere pour moi,
Car Dim Variable(1,2) cela me cause pas du tout,
je ne sais memes pas si on peut redimensionner, ni comment les lires
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 févr. 2007 à 11:14
Salut,
Non tu n'est pas tres clair.
les codes proposés ici devrait d'après ce que l'on comprend suffir.
Peu tu peu être donner un exemple plus concret alors.
NOTE: les tableaux peuvent très bien contenir des Classes, des Type, bref ce que tu veux. ensuite avec Redim PReserve, le contenu du tableau n'est pas perdu.

@+: Ju£i?n
Pensez: Réponse acceptée
0
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007
7 févr. 2007 à 11:15
Explication du but,
Dans une forme je saisie 2 chiffre dans des zonne texte, je calcul le produit
et je stock dans un tableau en memoire les 2 chiffres colone 1 et colone 2 et le Produit dans colone 3
puis apres je fait la somme de la colone 3

Le probleme je vais repeter cette operation plusieur fois sans jamais savoir combien de fois,
c'est pour cela que je cherhce une solution avec tableau ou autre, je n'arrive pas deja a imagé en tete le fonctionnement,
donc je n'arrive pas par quel bout chercher
0
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007
7 févr. 2007 à 11:17
Je m'en excuse jrivet je m'en appercois que je suis pas clair,
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 févr. 2007 à 11:18
Salut,
tu peux peu etre simplement stocke dans le tableau, le produit. et ensuite une fois ton tableau rempli, tu ajoute tout les éléments pour en resortir la somme.

Sinon tu peux passer par un Type.
Je te prépare un petit exemple.

@+: Ju£i?n
Pensez: Réponse acceptée
0
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007
7 févr. 2007 à 12:15
Total repect a toi jrivet,
je te remerci du code,
je vais faire ma salade avec ton code.
Merci beaucoup
0
Rejoignez-nous