Compter le nombre d'éléments dans un tableau

adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009 - 9 mars 2007 à 13:46
SrjMarshal Messages postés 1 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 5 janvier 2010 - 5 janv. 2010 à 09:57
bonjour à tous,
je développe une application en visual basic.
Dans cette appli, j'utilise un tableau de type

Type coef
    coef1 As Integer
    coef2 As Integer
    coef3 As Integer
    coef4 As Integer
End Type
Public t_coef As coef

ce tableau me sert a ajouter des éléments saisie dans une textbox. Lorsque que je clique sur un bouton, l'élément s'ajoute à mon tableau.
Pour compter le nombre d'éléments dans mon tableau, j'utilise une variable i. lorsque je clique sur le bouton je fais: i=i+1

J'aurai voulu savoir s'il n'y apas une manière plus simple pour compter le nombre d'élément dans un tableau
merci d'avance 

10 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 mars 2007 à 13:55
Ce que tu nous montre n'est pas un tableau mais une structure. Et il n'est pas possible d'ajouter d'éléments à une structure lors de l'execution.

Doit-on comprendre que en fait tu as un tableau dont les éléments sont cette structure ?????

Dans tout les cas, tu trouvera le nombre d'éléménts du tableau par cette formule UBound(tableau) - LBound(tableau) + 1

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
9 mars 2007 à 14:23
Désoler, tu as raison.
Voici mon tableau

    Dim tableau(0 To 2, 0 To 9) As Integer
    Dim i As Integer
   
    Select Case Text2
        Case 1
            tableau(0, i) = Text1
            i = i + 1
        Case 2
            tableau(1, i) = Text1
            i = i + 1
        Case 3
            tableau(2, i) = Text1
            i = i + 1
    End Select

Suivant le chiffre sasi dans une texbox (text2), j'ajoute un élément dans le tableau a deux dimensions
J'aimerai savoir comment je peux faire pour savoir combien d'élément par ligne (tableau(0,i), tableau(1,i))
j'ai essayé la formule du dessus et le résultat est toujour égale a 3 pour les 3 lignes.

merci d'avance
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
9 mars 2007 à 14:25
Désoler, tu as raison.
Voici mon tableau

    Dim tableau(0 To 2, 0 To 9) As Integer
    Dim i As Integer
   
    Select Case Text2
        Case 1
            tableau(0, i) = Text1
            i = i + 1
        Case 2
            tableau(1, i) = Text1
            i = i + 1
        Case 3
            tableau(2, i) = Text1
            i = i + 1
    End Select

Suivant le chiffre sasi dans une texbox (text2), j'ajoute un élément dans le tableau a deux dimensions
J'aimerai savoir comment je peux faire pour calculer le nombre  d'élément présent dans chaque  ligne du tableau. c'est à dire pour la ligne 0 (tableau(0,i)) pour la ligne 1( tableau(1,i)), ...
j'ai essayé la formule du dessus et le résultat est toujour égale a 3 pour les 3 lignes.

merci d'avance
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 mars 2007 à 15:04
Ok, j'avais mal compris. Je croyais que tu cherchais à avoir la taille du tableau, inutile ici puisque le tableau est de taille fixe.
Ma formule ne donne que la taille (totale) de la première dimention du tableau.

Pour compter le nombre d'éléments, pour l'instant, je ne vois pas d'autres solutions que ton code.
l'autre solution consisterait à passer chaque élément et a en comparer la valeur, mais elle ne serait pas plus judicieuse non plus.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0

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

Posez votre question
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
9 mars 2007 à 15:09
ok. merci quand même!!!
0
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
9 mars 2007 à 17:18
Violent Ken

Possible de faire Uboudn sur un tableau dynamique pour avoir la taille.

Et au passage,

Select Case Text2
        Case 1
            tableau(0, i) = Text1
            i = i + 1
        Case 2
            tableau(1, i) = Text1
            i = i + 1
        Case 3
            tableau(2, i) = Text1
            i = i + 1
    End Select

se remplace par :

tableau(text2-1,i)=text1
i=i+1

et si Text2 estr une textbox, alors il ne faut pas mélanger les types, et faire Val(Text2.text)

@+
0
42wawa42 Messages postés 143 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 6 septembre 2011
9 mars 2007 à 23:22
Hello une autre réponse:

Option Explicit


    Dim T1 As Integer
    Dim T2 As Integer
    Dim T3 As Integer
    Dim Test2 As Integer
    Dim tableau(1 To 3, 1 To 9) As Integer
Private Sub Form_Load()
   
    T1 = 1
    T2 = 1
    T3 = 1
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
 End Sub


Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Test2 = 1
Test_TextBox (Test2)
End Sub


Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
Test2 = 2
Test_TextBox (Test2)
End Sub


Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer)
Test2 = 3
Test_TextBox (Test2)
End Sub


Public Sub Test_TextBox(Test2 As Integer)


    Select Case Test2
        Case 1
            tableau(1, T1) = Val(Text1.Text)
            T1 = T1 + 1
        Case 2
            tableau(2, T2) = Val(Text2.Text)
            T2 = T2 + 1
        Case 3
            tableau(3, T3) = Val(Text3.Text)
            T3 = T3 + 1
    End Select


   MsgBox T1 & "  " & T2 & "  " & T3
   
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""


End Sub

Avec trois TextBox au nom voir text dans la form. Voila mon interpretation de votre text (programme).

A plus sur le Site VBFrance
42wawa42
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
12 mars 2007 à 14:20
merci pour vos diverses réponses.
malheureusement, je n'ai qu'une textbox donc je ne paux appliquer ton code 42wawa42.


par contre, j'ai essayé la méthode UBoudn mais le résultat est toujours égale à 3 (surement parce que j'ai 3 lignes).


merci d'avance
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 mars 2007 à 16:48
Salut,
Ubound peu prendre en parametre la dimention dont tu cherches le plus grand indice.
MSDN Dit:
Renvoie une valeur de type
<object id= "alink_4" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_4.Click() Long] contenant le plus grand indice
disponible pour la dimension indiquée d'un
<object id="alink_5" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_5.Click() tableau].

Syntaxe

UBound( arrayname [, dimension])

La syntaxe de la fonction UBound comprend les éléments suivants :

Élément, Description, ----
arrayname, Nom de la
<object id ="alink_6" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>Ju£i?n</italique>
Pensez: Réponse acceptée
0
SrjMarshal Messages postés 1 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 5 janvier 2010
5 janv. 2010 à 09:57
salut j'ai un probleme et j'ai pas de solution
en fait je n'arrive pas a trouver l'instruction sous vb 2005 qui me permettra de compter le nombre total d'enregistrement dans un fichier
merci d'avance

S.E.M
0
Rejoignez-nous