Simplification de code

Résolu
Signaler
Messages postés
20
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
21 octobre 2011
-
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
-
For i = 1
To 10
Step 1


TextBox1.Text TextBox1.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox2.Text TextBox2.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox3.Text TextBox3.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox4.Text TextBox4.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox5.Text TextBox5.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox6.Text TextBox6.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox7.Text TextBox7.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox8.Text TextBox8.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox9.Text TextBox9.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox10.Text TextBox10.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox11.Text TextBox11.Text & vbCrLf & a & " * " & i & " " & 1 + i


TextBox12.Text TextBox12.Text & vbCrLf & a & " * " & i & " " & 1 + i



Next i
peut t'on simplifier ce code
merci
sachant que a a une valeur differente a chaque ligne

8 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Il y a de très grandes chances que ce code soit simplifiable.

Mais il faut que tu dises quelles sont ces valeurs si particulières que 'a' prend à chaque ligne. Ensuite, ce sera facile!

Mais aussi : VB6 ? VBA ? la solution ne sera pas la même dans les deux cas.





Autre chose :



TextBox12.Text TextBox12.Text & vbCrLf & a & " * " & i & " " & 1 + i


ne devrait-elle pas se transformer en :

TextBox12.Text TextBox12.Text & vbCrLf & a & " * " & i & " " & a * i

?




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
3
Merci

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

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

Messages postés
20
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
21 octobre 2011

pardon pour + aux lieu * mais vu trop tard
merci
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Bah de rien ... mais on n'a pas encore réglé ton problème il me semble ...




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
3
Je verai bien un controlArray, non?
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Je pense qu'il faudrait mettre un groupe de controle avec une boucle superposé à ta boucle sur i de1 à 10. Si tu n'es pas en VBA mais en VB6 ca le fera:
1- Place untextbox nommé textbox1 sur une form
2- fixe sa propriété index à 0
3- Dans ton code création des n textbox vooulu :
For i = 1 to n
Load textbox1(i)
With textbox1(i)
.move ... ... 'Mettre la textbox la ou il faut
.visible = true 'Obligatoire sinon elle n'apparaitra pas
End with
4- Rempalce ton code par ceci :


For t = 1 to n
For i = 1 To 10 ' Step 1 est inutile !


with TextBox1(t) .Text .Text & vbCrLf & a & " * " & i & " " & 1 + i
end with
next
next



Christophe R
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
crenaud> La variable 'a' doit également varier ... mais comment ??

Je voyais bien aussi des groupes de contrôles,mais là, il faudrait qu'il se manifeste.

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Au pire, si a varie,il varie dans une boucle for ... next ou while ...wend, ce n'est qu'une couche à rajouter rien de terrible


Christophe R
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
3
si c'est un feuille avec les tables de multiplication que tu veux afficher, tu peux adapter le code suivant.

le label Table(0) est pose sur la feuille avec visible = False

j'ai utilise des labels parceque je n'ai pas trouve le WordWrap des Textbox.





Private Sub Form_Load()

Dim i As Integer, j As Integer

For i = 1 To 10

Load table(i)

With table(i)

.Visible = True

.Left = ((i - 1) Mod 5) * .Width + 200

.Top = Int((i - 1) / 5) * .Height + 200

.Caption = "table des " & i & vbCrLf

For j = 1 To 10


.Caption = .Caption & vbCrLf & i & "x" & j & "="
& i * j

Next

End With

Next

End Sub