Incrémenter une textbox

Résolu
mistermik Messages postés 7 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 27 janvier 2008 - 27 janv. 2008 à 18:46
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 - 29 janv. 2008 à 22:28
Bonjour,

       Je suis débutant,

voila mon problème : je cherche à incrémenter une textbox mais pas son contenu en fait je veus faire une boucle qui me permet de passer à une autre textbox
Je voudrais comparer le contenu de la text1.text au contenu de 100 autres textbox mais je ne veus pas taper 100 fois la même ligne.

text1.text = text1.text 
text1.text =t ext2.text
text1.text =t ext3.text
       etc ....
Je cherche une boucle de se style la
Dim n as integer
for n =1 to 100 step1
  text1.text = text(n)
next n
Cette boucle ne marche pas mais je voudrais connaitre la boucle qui pourrait marcher.
Merci de votre aide.

15 réponses

mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
28 janv. 2008 à 18:15
c'est vrai que je vois de suite mieux ce que c'est, mais après tout, ce n'est qu'une notation :)

 Pourapprendretoujoursplus!
3
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
27 janv. 2008 à 18:53
Salut,

Si tu veux faire comme ça, il faut que tes 100 textbox soient crées, d'une part, et d'autre part que tu les nommes toutes pareil (Text par exemple), et que tu leur donnes un index (de 1 à 100 ici).
La syntaxe pour la boucle que tu as donné sera alors
for i=2 to 100
  Text(i).text=Text(1).text
Next

Cela dit, je ne vois pas trop l'intérêt d'une telle boucle comme ça, mais c'est toi le chef du programme ;-)

 Pourapprendretoujoursplus!
0
mistermik Messages postés 7 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 27 janvier 2008
27 janv. 2008 à 19:07
Oui merci c est ça que je cherchais mais j'ai encore un petite problème.

j'obtient ce message d'erreur suivant : "Procédure Sub ou function non définie"

Private Sub check_Click()
Dim n As Integer
 For n = 2 To 100
    If Text(n).Text = Text(1).Text Then
next

Je suis débutant et j'essaie de faire un ptit programme qui compare des valeurs.j' obtient ce message car j'ai certaienement oublier de définir quelque chose mais je sais pas trop quoi... il me met l'erreur pour le text(n).text mais pourtant j'ai bien définie ma valeur n et tout mais text box son compléter par une valeur de 1 à 1000.

Merci pour ta réponse [auteur/MSTARSUP5/1174110.aspx mstarsup5]
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
27 janv. 2008 à 19:20
Salut
en quel version développes tu ? vb6 ou vb net ?

MANUANTIBES
0

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

Posez votre question
mistermik Messages postés 7 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 27 janvier 2008
27 janv. 2008 à 20:41
en visual basic 6 .

Merci
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
27 janv. 2008 à 20:47
Re,
Vérifie 2 choses:
1: tu as bien mis comme index de 1 à 100 pour tes textbox (toutes nommées Text, je rappelle hein, pas Text1, Text2, ou autre chose)
2: dans ta boucle, il faut que ton n aie des valeurs prises par les index de tes textbox (soit ici de 1 à 100 si tu les as toutes crées...)

Si tu n'as pas fait ça, c'est un peu normal que ça ne marche pas...
Et si tu as fait ça, le code marche impec.

 Pourapprendretoujoursplus!
0
mistermik Messages postés 7 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 27 janvier 2008
27 janv. 2008 à 21:36
Private Sub check_Click()
Dim n As Integer

 For n = 1 To 100 Step 1
 
    If Text1(n).Text = Text1.Text Then
      Text1(n).BackColor = &HFFFF&
    Else
      Text1(n).BackColor = &H80000009
    End If
    
    If Text73.Text > 1000 Then
      MsgBox "nombre compris entre 1 et 1000"
    ElseIf Text73.Text < 1 Then
      MsgBox "nombre compris entre 1 et 1000"
   
 Next
End Sub

voila ma boucle ne marche pas .... car j'obtient ce message d'erreur suivant : "Procédure Sub ou function non définie"
les 100 textbox ont une valeur déja attribué au départ.mais pas moyen de passé d'un textbox à un autre via une boucle.

merci d'avance
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
27 janv. 2008 à 21:45
Re,
plusieurs choses:

1 : Je vois des Text1, des Text73, et tout à l'heure c'était des Text (tout court).
Soit tu appelles tes textbox Text1, soit tu les appelles text73, soit tu les appelles Text tout court, mais ne fais pas tout à la fois...

2 : Tu écris: If Text73.Text > 1000
Alors sache qu'un textbox renferme une chaîne de caractères, pas un nombre.
Utilise donc plutôt If Val(Text73.Text)>1000

3 : Tu as écrit:
If Text73.Text > 1000 Then
      MsgBox "nombre compris entre 1 et 1000"
    ElseIf Text73.Text < 1 Then
      MsgBox "nombre compris entre 1 et 1000"

C'est pas plutôt
if val(Text73.Text)>=1 or Val(Text73.text)<=1000 then msgbox "nombre compris entre 1 et 1000"
 que tu veux? :-p

 Pourapprendretoujoursplus!
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
27 janv. 2008 à 21:53
Pour que tes textbox soit indexer comme te dit mstaesup5, un truc que je fesais lorsque je coder en VB6, c'est de poser 1 seul Textbox sur ma page je la selcetionne je la copie et je la coller de nouveau sur la meme page , et à un moment il te demande si tu veux qu'il est le meme nom donc indexer ou si tu veux que le nom (name soit different), il faut repondre oui ou non je ne sais plus , mais donne la bonne reponse pour que la textbox est le meme nom.

je te conseil de creer une autre form est de faire le test avec les textbox et de mettre le code de la boucle for, ça devrai marcher

pour ton erreur "Procédure Sub ou function non définie" ,

voici ton code :
Private Sub check_Click()
Dim n As Integer

mets juste
Sub Check_Click()
dim n as Integer
.....

End Sub

je relis les postes
il y a une erreur aussi dans ton code
sur cette ligne 
If Text1(n).Text = Text1.Text Then

il faut ecrire comme t'a dis plus haut mstaesup5
If Text1(n).Text = Text1(1).Text Then

A+
MANUANTIBES
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
27 janv. 2008 à 22:02
il y a encore des erreurs dans ton code

 If Text73.Text > 1000 Then
      MsgBox "nombre compris entre 1 et 1000"
    ElseIf Text73.Text < 1 Then
      MsgBox "nombre compris entre 1 et 1000"

il ne manque pas end if pour fermer ta boucle

on te dis que tes textbox doivent avoir le meme nom
et toi tu ne ecrire encore des textbox avec un nom Text73

il faut ecrire Text1(73).text > 1000 then
...

deja change Text1 comme nom ça porte a confusion

nomme la plutot TBCompar ou TBChiffre etc
TB... = TextBox
CB... = ComboBox
c'est la regle de  nommage que demande Microsoft, pour que tous les developpeurs comprennent.

MANUANTIBES
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
28 janv. 2008 à 18:11
ManuAntibes < Presque aps d'accord avec toi sur la convention de nommage des controles !
Une textbox sera plutot préfixée en "txt" et une combobox en "cmb" :
txtCompar, txtChiffre, cmbOptions, etc ...
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
29 janv. 2008 à 20:48
"ce n'est qu'une notation" < Ce n'est en effet qu'une notation et ne pas en tenir compte ne perturbe absolument pas l'execution du code ... mais facilite tellement la relecture du code ! Qd tu es sur un projet, le code que tu ponds t'es tres familier et cela n'est pas genant. Mais qd tu dois remettre le nez dans un projet après l'avoir mis de cote quelques temps, ou pire si tu dois travailler avec le code de quelqu'un d'autre ... la tu pleures s'il n'y a pas un minimum de convention de notation de respecter.
Qd tu developpes en tant que professionnel dans une boite, c'ets même une obligation de respecter des regles de nommage (et même des regles de codage en général)
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
29 janv. 2008 à 20:55
Je suis tout à fait d'accord, d'où mon "c'est vrai que je vois de suite mieux ce que c'est" au début de ma phrase ^^
Cela dit, si on programme pour son seul plaisir (comme moi par exemple), il n'y a pas de mal à faire ça à mon avis, ça apporte une touche personnelle au projet :)   ;-)

 Pourapprendretoujoursplus!
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
29 janv. 2008 à 21:43
personnelle oui, tellement personnelle que si tu dois pour une raison ou une autre mettre de coté ton code pendant quelques temps (quelques jours suffisent parfois) pour t'y replonger ensuite, tu verras que les conventions, ca a du bon.
Sans compter le fait que si tu partage ton code sur VBFrance par la suite, les autres seront bien plus attirer pour lire ton code s'il est conventionné
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
29 janv. 2008 à 22:28
Bon, je suis pas venu sur ce site pour me prendre la tête et passer mes soirées à avoir des arguments pour du flan, tu as raison, j'ai tort, et on ne devrait d'ailleurs pas autoriser les gens à programmer, même s'ils débutent complètement, s'ils n'utilisent pas les conventions que tu as citées ci dessus : D

En étant un peu plus sérieux, je répète, je suis d'accord avec toi sur toute la ligne, j'ai simplement fait remarquer que ce n'était pas un crime si qqn n'utilise pas ces conventions là exactes mais a d'autres conventions qu'il s'est trouvé lui même et qui sont compréhensibles pour la plupart, si ce type programme pour lui même comme un passe temps et pour se faire plaisir.

Un exemple: j'apprends tout seul à programmer, sans livre sans rien, et je me fais mes propres conventions pour rendre mes programmes faciles à lire (ici ça peut être celles de tout à l'heure)... Elles sont compréhensibles pour tout le monde, on s'y retrouve facilement, bla bla...
Alors oui, c'est sûr que ce n'est pas la convention de la communauté de vb6, et que ça serait mieux de connaître d'une part cette convention, et de l'utiliser d'autre part, mais y'a pas à faire tout un fromage si on ne connait pas la convention, si on fait juste de la programmation par plaisir...
Maintenant, cela mis à part, je suis d'accord sur le principe de nous donner la convention utilisée par les programmeurs et t'en remercie par la même car je ne la connaissais pas (j'ai toujours écrit TexteMachin, LabelTruc, ... Facilement compréhensible comme tu voies)

Enfin bref
Je retourne à mes programmes moi, je vous souhaite une très bonne soirée à tous.
Bonne programmation!

 Pourapprendretoujoursplus!
0
Rejoignez-nous