Affichage d'un tableau dans une ListBox

Signaler
Messages postés
62
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
16 octobre 2007
-
Messages postés
336
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
22 février 2019
-
Bonjour all,

J'ai un problème, je génére un tableau avec des resultats de et la date du jour : j'ai donc 3 colonnes.

Mais j'ai un message d'erreur : Nombre de dimensions incorrectes. Pouratnt je déclare bien mon tableau !! ?? !!

Merci d'avance de votre aide, voici le code

Dim tab1(0 To 2) As String
Dim i As Integer

' facon de rechercher en fonction du bouton activé, client, Marché ou N° de marché

i = LstResultat.ListCount + 1
tab1(0, 0) = "DATE"
tab1(0, 1) = "FRAGS"
tab1(0, 2) = "MORTS"

tab1(i, 1) = Calendar1.Value
tab1(i, 0) = TxtNbFrag.Text
tab1(i, 2) = TxtNbFrag.Text

LstResultat.Visible = True
LstResultat.Columns = 3
LstResultat.AddItem tab1

5 réponses

Messages postés
336
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
22 février 2019
1
ben non, tu dimentionnes un tableau à une dimension (1 colonne) alors que tu veux stocker des données dans deux dimensions (tableau à i lignes par 3 colonnes)

Dim i As Integer

' facon de rechercher en fonction du bouton activé, client, Marché ou N° de marché

i = LstResultat.ListCount + 1
Dim tab1(i,0 To 2) As String
tab1(0, 0) = "DATE"
tab1(0, 1) = "FRAGS"
tab1(0, 2) = "MORTS"

Messages postés
62
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
16 octobre 2007

Merci de ton aide mais ca ne marche pas !!!

Il me met : Erreur de compilation, constante requise, et il me surligne ne gris le "i" de Dim tab1(i, 0 to 2)...

Une idéee ???????

Voila le code complet

Merci d'avance +++

Zoglub14

Private Sub OK_Click()

Dim NbFrag As Integer
Dim NbMort As Integer

If Not IsNumeric(TxtNbFrag.Text) Or Not IsNumeric(TxtNbFrag.Text) Then
MsgBox "Veuiller rendeigner les 2 champs S.V.P. !!", vbOKOnly + vbCritical, "Attention ..."
Exit Sub
End If

Dim i As Integer
i = LstResultat.ListCount + 1
Dim tab1(i, 0 To 2) As String

tab1(0, 0) = "DATE"
tab1(0, 1) = "FRAGS"
tab1(0, 2) = "MORTS"

tab1(i, 1) = Calendar1.Value
tab1(i, 0) = TxtNbFrag.Text
tab1(i, 2) = TxtNbFrag.Text

LstResultat.Visible = True
LstResultat.Columns = 3
LstResultat.AddItem tab1

End Sub

Dim Resultat As Integer
Resultat = (TxtNbFrag.Text / TxtNbMort.Text) * 100
LblStatJour.Text = Resultat & " %"

End Sub
Messages postés
336
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
22 février 2019
1
effectivement il fallait utiliser la fonction redim et non dim,
donc

Redim tab1(i,0 To 2) As String


par contre je vois d'autres fautes dans ton code (variable du même nom)
peux-tu préciser si tu es sur vb6 ou vba (word,excel...) pour que je puisse te donner qques conseils (les conseils ne seront pas les mêmes selon que tu es sur vb6 ou vba) ;-)
Messages postés
62
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
16 octobre 2007

Salut,

Merci pour la réponse.

Je suis en VB6, mais effectivement ma routine vient de Excel !

Je me débrouille pas trop mal en VBA excel, mais je suis un peu perdu en VB, ce n'est pas tout a fait la même chose !!!

Par contre je veux bien que tu me donnes les consils sur les deux langages que je puisse voir les differences !!

Merci d'avance

++

Zoglub14
Messages postés
336
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
22 février 2019
1
d'abord tu ecris
If Not IsNumeric(TxtNbFrag.Text) Or Not IsNumeric(TxtNbFrag.Text) Then

soit deux fois la même chose.

en vb6 on peut avoir deux composants du même nom; c'est un groupe de composants.
dès lors il faut écrire en valeur indicée:

If Not IsNumeric(TxtNbFrag(0).Text) Or Not IsNumeric(TxtNbFrag(1).Text) Then



ensuite les listes ne sont pas exactement pareil en vba et en vb6 car listbox<>list :
LstResultat.Columns = 3
ça c'est pas possible en vb6

donc tu ne pourras ajouter des élements que sur une seule colonne, à moins d'utiliser un autre composant comme la listview ou autres "grid"