Tom352
Messages postés2Date d'inscriptionmardi 15 juin 2010StatutMembreDernière intervention17 juin 2010
-
16 juin 2010 à 21:37
Profil bloqué -
17 juin 2010 à 17:37
Bonsoir à tous,
Voila, je viens vers vous car je souhaiterais améliorer mon code mais je ne sais comment faire.
Voici une partie du code :
For i = 0 To UBound(PartieA)
If TextBox1.Text = PartieA(i) Then
Label3.Text = "Partie A"
Exit Sub
End If
Next
For i = 0 To UBound(PartitB)
If TextBox1.Text = PartitB(i) Then
Label3.Text = "Partit B"
Exit Sub
End If
Next
Etc...
Je test chaque tableau qui va de A à Z. Mon idée serait de faire une variable que j'incrémente grâce que code ascii.
Ca deviendrait donc :
For i = 0 To UBound(Partit & Chr(Asc(i))
If TextBox1.Text = "Partit" & Chr(Asc(i) Then
Label3.Text = "Partit" & Chr(Asc(i)
Exit Sub
End If
Next
Et aprés j'incrémene i à chaque fin de boucle.
Malheuresement, cette solution ne marche pas... Ca bloque à : For i = 0 To UBound(Partit & Chr(Asc(i)).
Quelqu'un aurait t'il une idée ??
Salut tom352
si tes 26 tableaux ont tous la même taille tu peux ne faire qu'un seul tableau à 2 dimensions
dim Partie(i,j) où i représenterait les lettres A à Z sous la forme 0 à 25 et j le nombre d'éléments des 26 sous-tableaux
For i = 0 To 25
For j = 0 to Ubound(Partie,2)
If TextBox1.Text = Partie(i,j) Then
Label3.Text "Partie" & Chr(Asc(i + 65) ' si i 0 la lettre est A , si i = 1 la lettre est B etc....
Exit for
End If
Next j
Exit Sub
Next i
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Tom352
Messages postés2Date d'inscriptionmardi 15 juin 2010StatutMembreDernière intervention17 juin 2010 17 juin 2010 à 01:58
Bonsoir,
Merci pour la réponse mais malheureusement mes tableaux sont de tailles différents. je garde néanmoins cette astuce sous le coude pour une prochaine prog.
Dans le cas de tableaux de tailles différentes on peut faire ceci
Soit le cas de 3 tableaux : A(0 to 10), B(0 to 15) et C(0 to 20)
on dimensionne les trois tableaux de 0 à 20 et on les initialise avec une chaine vide
ensuite dans le tableau A on met les 11 valeurs de 0 à 10, dans B les 16 valeurs de 0 à 15 et dans C les 21 valeurs de 0 à 20
On reprend notre code
For i = 0 To 2 ' pour les tableaux A,B et C ( de A à Z on aurait de 0 à 25)
For j = 0 to 20 ' pour le plus grand tableau ( ici le C de 0 à 20)
If Partie(i,j) = "" Then Exit For ' si on arrive à chaine nulle : fin de ce tableau et on sort
If TextBox1.Text = Partie(i,j) Then
Label3.Text "Partie" & Chr(Asc(i + 65) ' si i 0 la lettre est A , si i = 1 la lettre est B etc....
Exit for
End If
Next j
Exit Sub
Next i
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.